西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发Android → android中checkbox全部选择出现bug的解决方案

android中checkbox全部选择出现bug的解决方案

相关软件相关文章发表评论 来源:西西整理时间:2012/12/27 8:33:37字体大小:A-A+

作者:西西点击:3次评论:0次标签: checkbox

  • 类型:文件处理大小:209KB语言:中文 评分:7.0
  • 标签:
立即下载

存在的问题:

我们在操作“全部选择”list中的元素,我们最常用的方法是,遍历一下,然后把所有的checkbox都给选中,但是这有一个bug,就是,当选择后,往下拉时候,下面的都没被选中,再往上拉的时候,上面的又会被取消选择。于是,找到一个新的解决办法,给记下来,留着以后使用。

解决办法:

我们把选中的位置使用一个数组或者集合来记着当前选择的状态。

如果集合中包含这个item,那么我们就让他们的checkbox设置成选中状态。

我们使用set集合来做,因为set集合可以去重复。

举个例子:

//一、创建一个set集合
private HashSet<String> itemSelected=new HashSet<String>();


//二、全部选择的点击事件
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<adapter.getCount();i++){
                Cursor cursor = (Cursor) adapter.getItem(i);
                String idstr = cursor.getString(ID_COLUMN_INDEX);
                itemSelected.add(idstr);
            }
            adapter.notifyDataSetChanged();
            break;
            
        case R.id.bt_cancel_selected:
            
            break;
        }
        
    }

三、在显示模式的时候去判断set集合中的元素,然后设置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);
            }
    hosts修复软件
    (60)hosts修复软件
    文件是计算机中一个举足轻重的文件,该文件有一个比较大的特点就是没有扩展名。经常在一些电脑个性技巧以及其他领域方面会用到,西西提供文件修复工具软件下载大全。官方介绍是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的地址建立一个关联数据库,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从文件中寻找对应的地址,一旦找到系统会立即打开对应网页,如果没有找...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)