永发信息网

android中的checkBox如何实现单选

答案:3  悬赏:50  手机版
解决时间 2021-03-06 14:50
android中的checkBox如何实现单选
最佳答案
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;
     }

    }
   });
全部回答
大概情景:在做一个文件浏览器。listview显示所有的文件。如果是文件,点击打开。如果是文件夹,递归显示目录下的文件。 遇到的问题:通过listview和checkbox实现批量删除。checkbox初始状态gone,用户选择批量操作后,显示checkbox,然后选择要删除的item。这里如果在xml中设置checkbox的属性android:clickable=false,会影响到文件的操作,比如会弹出打开或者递归目录的问题。如果不设置,响应事件又被checkbox截获,没法得到item的值。后来,有想到可以直接在用户做出最终操作时去遍历所有item并判断checkbox状态,但是这里不知道如果得到listview中checkbox对象。所以想大家请教一下应该如何处理。
加判断呗(你是想实现互斥吧),CheckBox有一个监听器OnChangedListener(好像是,反正跟这个差不多),每次选择checkbox都会触发这个事件,里边有一个参数isChecked,就是判断checkbox是否已经选上了的,可以在这判断:如果已经选上了就让其他的checkbox的setChecked设置为false呗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【人生最大的悲哀莫过于】人生最大的悲哀莫过
中国移动射阳国讯指定专营店朝阳街店在哪里啊
kimmon在为爱所困里面演的谁
体育本科录取75分,考74 还有希望吗?
用细线系住一小球在光滑的水平面上做匀速圆周
埋汰人什么意思
哪位知道法国有一个男孩唱的歌,歌名就是<啊>,
男,27岁。腹痛伴呕吐10小时,起初疼痛在脐周
乌鲁木齐南山现在的骑马价格是多少?
央行信用报告查询要银行卡密码?我已经填上去
谜语4十4十4=(打一水果)
笔记本电脑开机报警 1长2短2短 如何解决。
下列关于人体内环境稳态失调的叙述,错误的是
借条上少了一个零加个零还有效
等级保护和分级保护有什么区别?
推荐资讯
中国人寿的万朵玫瑰恋爱险能赚钱吗
微星A68HM-E33 V2怎么样?微星A68HM-E33 V2好
我想申请一套廉租房实物配售,可不知道产权归
mrt是什么文件格式?
mantis问题求助!!!
下列有关突触的正确叙述是:A. 兴奋从轴突传
个人魅力指数up是什么意思
市场上那些卖臭豆腐音响放的那些语音是从哪来
客所思声卡连接手机有杂音而且耳麦一个响一个
为什么外国油画的女人上半身都是裸的?
膳食纤维为主的的保健品
初学者买什么萨克斯好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?