ListView与Checkbox
来源:互联网 发布:北京装修多少钱 知乎 编辑:程序博客网 时间:2024/06/03 19:38
/**
* listview解决checkbox复用问题
*
* 解决方案: 用一个集合动态记录每一个item的选中状态
*
* 切记:v.cb.setChecked(l.get(position));一定要设置在setOnCheckedChangeListener的后面
*
*
*
* 原因:当我们滑动到第一条数据不再显示开始显示下面的数据的时候,因为复用了convertView,
* 也就是当前item的和第一条item共用了第一条convertView,
* setChecked修改了CheckBox的状态,而此时此刻肯定会去回调
* OnCheckedChangeListener,
* 但是我们并没有给checkBox设置新的OnCheckedChangeListener,
* 也就是说,此时还是执行的以前的回调,这样就会把之前item的状态改变
* @athor Mneg
*
*/
class Myadapter extends BaseAdapter{ private List<String> list; //记录每一个item的chekbox状态 private List<Boolean> l=new ArrayList<Boolean>(); public Myadapter(List<String> list){ this.list=list; //初始值都是未选中 for(int i=0;i<list.size();i++){ l.add(false); } } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { Vh v=null; if(convertView==null){ v=new Vh(); convertView=LayoutInflater.from(MainActivity.this).inflate(R.layout.itm_lv, null); v.cb=(CheckBox) convertView.findViewById(R.id.ck); convertView.setTag(v); }else{ v=(Vh) convertView.getTag(); } v.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { //改变选择状态 if(arg1) { l.set(position, true); } else { l.set(position, false); } } }); //设置chekbox的选中状态 v.cb.setChecked(l.get(position)); return convertView; } class Vh{ CheckBox cb; } }}
0 0
- ListView 与 CheckBox
- Android ListView与CheckBox
- ListView与Checkbox
- checkbox与listview抢夺焦点
- listview与checkbox联合使用
- CheckBox与ListView监听问题
- ListView 与CheckBox 焦点冲突
- CheckBox与ListView结合使用
- ListView与CheckBox,EditText,Button结合
- checkbox 与 listview 等混用焦点问题
- ListView与CheckBox组合实现单选
- ListView与CheckBox的综合使用
- listview 与checkbox结合记录点击数据
- checkbox 与listview 点击事件冲突
- ListView与CheckBox混用焦点的问题
- ListView中Item与Button、CheckBox冲突
- ListView 多选与CheckBox 结合策略
- ListView 与CheckBox 触发事件冲突解决
- Android面试题--布局
- 数据结构实验之求二叉树后序遍历和层次遍历
- (3)Java设计模式-单例模式(Singleton)
- Leetcode no. 81
- Storm错误集
- ListView与Checkbox
- hdu 5439 Aggregated Counting(长春网络赛——找规律+二分)
- mybatis实战教程(mybatis in action),mybatis入门到精通
- AJAX可以统计下载次数吗
- JavaScript九宫格数独生成算法
- 积木积水(广东工业大学校赛决赛2016E题)
- js跨域数据传输
- C# Winform工程省市县三级行政区联动1 --XML
- Phantomjs 调试方法