android中checkbox全部选择出现bug的解决方案
- 时间:2015年04月02日 15:26:01 来源:魔法猪系统重装大师官网 人气:3873
存在的问题:
我们在操作“全部选择”list中的元素,我们最常用的方法是,遍历一下,然后把所有的checkbox都给选中,但是这有一个bug,就是,当选择后,往下拉时候,下面的都没被选中,再往上拉的时候,上面的又会被取消选择。于是,找到一个新的解决办法,给记下来,留着以后使用。
解决办法:
我们把选中的位置使用一个数组或者集合来记着当前选择的状态。
如果集合中包含这个item,那么我们就让他们的checkbox设置成选中状态。
我们使用set集合来做,因为set集合可以去重复。
举个例子:
//一、创建一个set集合 private HashSetitemSelected=new HashSet (); //二、全部选择的点击事件 public void onClick(View v) { int id=v.getId(); switch (id) { case R.id.bt_new_msg: Intent intent = new Intent(ConversationActivity.this, NewMessageActivity.class); startActivity(intent); break; case R.id.bt_all_selected: //把选中的状态加入到一个set集合 for(int i=0;i 然后设置checkbox的选中状态 //根据mode 模式设置checkbook if(mode==DISPLAYMODE.edit){ checkBox.setVisibility(View.VISIBLE); //checkbox是否选中的 if(itemSelected.contains(idstr)){ //选中 checkBox.setChecked(true); }else{ //不选中 checkBox.setChecked(false); } }else{ checkBox.setVisibility(View.GONE); }
上一篇:走进汇编指令来看C/C++指针初始化的金科玉律
下一篇:深入理解Java中的流机制