也许大家在用listview时会遇到一些技术难题,比如你要做一个类似购买火车票时,选择联系人的界面,这个时候需要在listview的布局中添加checkbox,把选中的那些人的信息放在集合中,那么我们要怎么获取呢?因为这个时候已经不是简单的条目点击事件了
首先我模拟了一些假数据,接下来我们需要进行控件初始化,可能大家会看到这段代码adapter.setCallBack(this);对,可能有的同事就能看出来这就是接口回调,这也是解决我们这个需求的主角
那么我们来看我们的适配器adapter,我写了一个接口回调,这是关于setonselectchang的回调接口
接口里面两个未实现的方法,一个把对象添加进集合的方法,一个移除的方法。
当然我们也要考虑checkbox的选中状态,那么我们来写一个方法吧,不使用传统的监听方法
我们把选中的条目对应的position和状态统一放入一个map集合中,通过set方法收集起来,用的时候再geT出来。
下面我们来进行修改checkbox的选中状态
当我们点击某个checkbox时,记录下来我们点击的checkbox所在的条目id以及状态位,选中时调用接口里的添加方法,移除时调用移除方法,并改变checkbox的状态
可能大家会好奇,这里并没有接口的实现方法,怎么调用呢?既