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;
}
}
});
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呗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯