永发信息网

android中的checkBox如何实现单选

答案:3  悬赏:50  手机版
解决时间 2021-03-06 14:50
  • 提问者网友:骨子里的高雅
  • 2021-03-05 23:53
android中的checkBox如何实现单选
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-03-06 00:39
Android中checkbox默认为复选框,也就是多选,实现单选的话,可以让checkbox添加监听,当已经有一个点击了,点击另外一个的时候,修改默认的状态,实现单选,示例如下:
public static int temp = -1;
checkBox = (CheckBox) parentView.findViewById(R.id.cbox_isselect);
   //做个标记
   checkBox.setId(groupPosition);
   //checkbox监听
   checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     if (isChecked)
     {
      // 这段代码来实现单选功能
      if (temp != -1)
        {
         CheckBox tempButton = (CheckBox) MyRingBoxActivity.this.findViewById(temp);
         if (tempButton != null)
            {
             tempButton.setChecked(false);
            }
         }
      //得到当前的position
      temp = buttonView.getId();
     } else {
      temp = -1;
     }

    }
   });
全部回答
  • 1楼网友:不如潦草
  • 2021-03-06 02:06
大概情景:在做一个文件浏览器。listview显示所有的文件。如果是文件,点击打开。如果是文件夹,递归显示目录下的文件。 遇到的问题:通过listview和checkbox实现批量删除。checkbox初始状态gone,用户选择批量操作后,显示checkbox,然后选择要删除的item。这里如果在xml中设置checkbox的属性android:clickable=false,会影响到文件的操作,比如会弹出打开或者递归目录的问题。如果不设置,响应事件又被checkbox截获,没法得到item的值。后来,有想到可以直接在用户做出最终操作时去遍历所有item并判断checkbox状态,但是这里不知道如果得到listview中checkbox对象。所以想大家请教一下应该如何处理。
  • 2楼网友:洎扰庸人
  • 2021-03-06 01:03
加判断呗(你是想实现互斥吧),CheckBox有一个监听器OnChangedListener(好像是,反正跟这个差不多),每次选择checkbox都会触发这个事件,里边有一个参数isChecked,就是判断checkbox是否已经选上了的,可以在这判断:如果已经选上了就让其他的checkbox的setChecked设置为false呗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯