在日常的App开发中,尤其是在开发生活服务的应用上,很多时候,我们会需要联动地展现省市区的数据等,需求大概如下:
1)展现所有省份
2)当点击某省份的时候,在二级菜单上展现此省份下面所属的城市列表
3)选中返回,显示我们选中的城市
4)当重新进入选择页面的时候,标识出我们上一次选中(或者说当前已经选择)的值
下图是一个类似的ListView联动选择控件。
1)首先定义一个Layout,左右各放置一个ListView,大概界面如下:
2)自定义一个控件(ValuePicker),在控件中,首先我们要获取填充两个ListView的数据,如果在是省市的话,就要获取省市的数据,在这个Demo中,我们利用DataProvider这个类,来模拟一些数据,如下:
public class DataProvider {
public static final String[] summaries = {
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H"
};
public static final Map<String, String[]> details = new HashMap<>();
static {
details.put("A",new String[] {"A1", "A2", "A3"});
details.put("B",new String[] {"B1", "B2", "B3"});
details.put("C",new String[] {"C1", "C2", "C3"});
details.put("D",new String[] {"D1", "D2", "D3"});
details.put("E",new String[] {"E1", "E2", "E3"});
details.put("F",new String[] {"F1", "F2", "F3"});
details.put("G",new String[] {"G1", "G2", "G3"});
details.put("H",new String[] {"G1", "H2", "H3"});
}
}
然后在ValuePicker中引用这些数据。
private String[] summaries = DataProvider.summaries;
private Map<String, String[]> details = DataProvider.details;
3)要将数据绑定到对应的ListView上面,我们必须分别为这两个ListView声明一个Adapter,在这里,我们继承BaseAdapter,创建一个SingleCheckedListAdpater。
由于Android本身提供的ListView是没有选中的效果的,而基

本文介绍了如何在Android应用开发中实现联动的ListView,展示省市区数据。详细讲解了从设计布局、填充数据到处理选中状态变化的过程,包括ListView的复用策略和更新联动数据的方法。
最低0.47元/天 解锁文章
9294

被折叠的 条评论
为什么被折叠?



