android NumberPicker 数组越界的坑
2015-08-02 15:57
375 查看
被这个问题耽误了一个多小时。。。
直接上解决方案,参考红色部分。
有兴趣的可以研究一下源码找下原因。
直接上解决方案,参考红色部分。
private void initViews() { wheel = (NumberPicker) findViewById(R.id.info_wheel_province); wheelCity = (NumberPicker) findViewById(R.id.info_wheel_city); wheelCity.setWrapSelectorWheel(false); //读取地址信息json final List<CityBean> cityBeans = ResUtils.initCityList(this); final String[] pros = new String[cityBeans.size()]; for (int i = 0; i < pros.length; i++) { pros[i] = cityBeans.get(i).getProvince(); } // wheel.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); // wheelCity.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); wheel.setMaxValue(pros.length - 1); wheel.setMinValue(0); wheel.setWrapSelectorWheel(false); wheel.setDisplayedValues(pros); wheel.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, final int newVal) { String citys = cityBeans.get(newVal).getCitys(); final String[] split = citys.split(","); wheelCity.setMinValue(0); wheelCity.setValue(0); if (split.length - 1 > wheelCity.getMaxValue()) { wheelCity.setDisplayedValues(split); wheelCity.setMaxValue(split.length - 1); } else { wheelCity.setMaxValue(split.length - 1); wheelCity.setDisplayedValues(split); } wheelCity.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker2, int oldVal2, int newVal2) { Toast.makeText(InfoActivity.this, pros[newVal] + " " + split[newVal2], Toast.LENGTH_LONG).show(); } }); } }); }
有兴趣的可以研究一下源码找下原因。
相关文章推荐
- Android Studio安装与gradle的关系
- [深入理解Android卷一全文-第五章]深入理解常见类
- [深入理解Android卷一全文-第五章]深入理解常见类
- 浅谈android入门
- Android学习笔记之BroadcastReceiver
- [深入理解Android卷一全文-第四章]深入理解zygote
- 解决Android 的模拟器显示乱码问题
- android record
- [深入理解Android卷一全文-第四章]深入理解zygote
- android基础之IntentFilter匹配规则与隐式启动Activity
- Android播放音频的两种方式
- Android之——Service总结
- 关于开发Android应用时写从图库选择头像功能时遇到的一些问题。
- 【Android多媒体】Android5.0 NuPlayer多媒体框架【1】
- Android Activity的探讨——入门
- Android Studio 设置项目Module编码,解决Android Studio项目运行时乱码问题
- Android-selector背景选择器
- android 键值(input)
- android studio使用百度SDK开发百度地图应用中遇到的问题汇总
- android 显示和分辨率区别