android NumberPicker 数组越界的坑
被这个问题耽误了一个多小时。。。
直接上解决方案,参考红色部分。
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 NumberPicker 数组越界的坑的更多相关文章
- 解决Android时时更新listview数组越界问题
时时更新数据一般出现在金融.股票行业对数据的准确性要求极高情况下使用. 先来看看下面一段代码, public class MainActivity extends Activity { private ...
- Android 【问题汇总】列表数组越界的问题
遇到了一个诡异的问题,ListView发生数组越界(偶尔会),程序崩溃. 错误信息如下: W/dalvikvm( ): threadid=: thread exiting with uncaught ...
- 墨菲定律与 IndexOutOfBoundsException(数组越界异常)
今天维护又反馈了一问题过来,查询试卷时报数组越界异常: 2017-02-28 10:45:24,827[ERROR] HttpException[10.32.111.7:60446:2D07867BE ...
- ListView 适配器实现getviewtypecount() 数组越界IndexOutOfBoundException
ListView中Item的多布局显示,需要用到了getviewtypecount和getItemViewType这两个重写方法,但是做完后出现了如下提示错误: java.lang.ArrayInde ...
- iOS如何彻底避免数组越界
我们先来看看有可能会出现的数组越界Crash的地方: ? 1 2 3 4 5 6 7 - (void)tableView:(UITableView *)tableView didSelectRowAt ...
- Objective-c防止数组越界而崩溃(全局效果)
数组越界其实是很基本的问题,但是解决起来除了count的判断,还有每个调用的时候都要去判断一遍 对于不明确的数据总会有崩溃的风险 然而 每次调用都判断 那是太累了 so ..runtime&c ...
- 数组越界保护与消息传递black机制
数组越界保护if(index.row <= [array count]) 发送消息[[NSNotificationCenter defaultCenter] postNotificati ...
- Android开发需要注意的坑
Android开发需要注意的坑一览对于一些Android开发过程中坑爹.细小,但又重要的错误的总结Android开发在路上:少去踩坑,多走捷径其他参考: google官方版本发布图 umeng ...
- iOS 数组越界 Crash加工经验
我们先来看看有可能会出现的数组越界Crash的地方. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSInd ...
随机推荐
- 每天一个linux命令---useradd
1.添加用户 useradd 选项 用户名 其中各选项含义如下: -c comment 指定一段注释性描述.-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录.-g ...
- Drawing Arc Using ArcSegment in XAML
We can use the Arc XAML element to draw arcs in XAML. Besides drawing arcs using the Arc element, we ...
- [转]linux下svn命令大全
FROM:http://www.jb51.net/os/RedHat/2461.html 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:s ...
- strace命令跟踪进程
在实际系统维护过程中,常常需要知道一个进程在做哪些动作,比如想判断一个进程是否hang,我们可以使用strace命令,此命令式用来跟踪一个进程在调用哪些系统函数和信号 通过跟踪xinetd进程演示st ...
- sql:找出工资第二高的人名
CREATE TABLE EmpSalaryInfo ( Id ), Name ), Salary int ) ) ) ) ) 方法1 (子查询): name from test where sala ...
- Maven_如何为开发和生产环境建立不同的配置文件 --我的简洁方案
其实也是最近才看Maven, 以前都是用ant+ivy, 对于轻量级的项目来说足够了, 而且非常灵活. 看了看Maven, 约定.... 现在编程都说约定, 约定是挺好, 问题是超出约定的事情太多了, ...
- C# 窗体位置 Show和ShowDialog(转)
CenterParent 窗体在其父窗体中居中. CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定. Manual 窗体的位置由 Location 属性确定. Windows ...
- push splice filter用法
checkedData.push(record); 直接在record 这个数组后面添加; var index =jQuery.inArray(record,checkedData);// 获取ind ...
- CAS单点登录配置
见http://download.csdn.net/detail/u010786672/6942715下载.
- mysql语句 索引操作
创建索引:(help create index;) CREATE INDEX indexName ON tableName(Coll,Coll....); ALTER TABLE tableName ...