Android学习小Demo(21)ListView的联动选择

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

在日常的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是没有选中的效果的,而基

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值