Closed zhuzhushang closed 8 years ago
都是照着你的写的 应该不会有问题,我调试了一下,发现联动监听器那里index总是返回的是0 指点下。
// 联动监听器 wheelListener_option1 = new OnItemSelectedListener() {
@Override
public void onItemSelected(int index) {
[ ] `
ArrayList<Province> listProvince = ssqModel.getList();
ArrayList<ArrayList<City>> listCity = new ArrayList<>();
listCounty = new ArrayList<>();
for (int i = 0; i < listProvince.size(); i++) {
ArrayList<City> city = listProvince.get(i).getCata();
listCity.add(city);
ArrayList<ArrayList<County>> list = new ArrayList<>();
for (int j = 0; j < city.size(); j++) {
ArrayList<County> county = city.get(j).getCata();
list.add(county);
listCounty.add(list);
}
}
pvOptions.setPicker(listProvince, listCity, listCounty, true);
pvOptions.setTitle("请选择");
pvOptions.setCyclic(true, false, false);
pvOptions.setSelectOptions(0, 0, 0);
pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int option2, int options3) {
// TODO Auto-generated method stub
String cityCode = listCounty.get(options1).get(option2).get(options3).getF_areacode();
etCity.setText(""+cityCode);
}
});`
listProvince 的 数据正确吗? 代码目测看不出问题。
早上好,这样的,因为3个list 存的不是string 而是对象 我改成字符串以后是可以联动的,但是第三级只有一个数据,我快疯了... 为什么只有一个数据? list里面肯定是有数据的 这里不能发图吗?
你可以用Object的,然后Object要写public String getPickerViewText() 函数,我在控件里面做了反射这个函数,用来获取显示的文本,demo也有这样的例子呀,看ProvinceBean 这个类
这样写的呀 我之前直接tostring 那为什么只有一条数据呢?有遇到类似情况吗?
棒棒哒!public String getPickerViewText() 用你说的这个可以 说明我数据没问题 这就是你的bug了,三个数据都是字符串时,最后一个第三级 只显示一个数据 这个bug看下
还有一点就是数据的完整性 如果对应的下一级为null,那么就会报错!
自己仔细看看漏了什么