Android中的checkBOX在代码中怎么设置至少选中一个?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的checkBOX在代码中怎么设置至少选中一个?相关的知识,希望对你有一定的参考价值。
CheckBox和Button一样,是android系统提供的最原始的控件,它的优点在于,不用用户去填写具体的信息,只需轻轻点击,缺点在于只有“是”和“否”两种情况,但我们往往利用它的这个特性,来获取用户的一些信息。1.CheckBox的常用属性
checked属性是CheckBox最重要的属性之一,改变方式有两种,xml中定义 android:checked="true|false" 表示选中和不选中
2.在代码中设置选择状态 checkBox.setChecked(true|false);
3.获取CheckBox的状态 checkBox.isChecked(); true表示选中,false表示未选中
4.checkBox的应用
1.如果不确定某一组选项有几个的时候,例如多选之前删除,那么要使用listView + adapter 其中checkBox存放在listView的adapter中,代码实现比较复杂,需要自己去注册checkBox的事件
2.如果checkBox的选项是已经知的,例如兴趣爱好,已知有多少个选项的情况下,那么你只需要用个线性布局做为容器,将checkBox都放到这个容器中
3.获取选中的文本 如果是用listView的话,只需要自己在adapter中写一个方法,返回选中的数据即可得到文本,如果是其它容器做的话,只能去遍历这个布局下的所有checkBox
然后调用
if(checkBox.isChecked())
checkBox.getText().toString(); //即可得到选中的文本
有关checkBox的更多用法,建议查看官网API文档 参考技术A 上来就选择一个 还是说提交事件的时候 必须有一个是选中的~第一种设置可以使用android:checked="true"属性设置CheckBox控件默认为选中状态,第二个在提交事件的时候循环判断然后看有几个选中弹出一个对话框 参考技术B 你是想要求他上来就选择一个 还是说提交事件的时候 必须有一个是选中的~第一种设置可以使用android:checked="true"属性设置CheckBox控件默认为选中状态,第二个在提交事件的时候循环判断然后看有几个选中弹出一个对话框就行啊 参考技术C 你是想要求他上来就选择一个 还是说提交事件的时候 必须有一个是选中的~第一种设置可以使用android:checked="true"属性设置CheckBox控件默认为选中状态,第二个在提交事件的时候循环判断然后看有几个选中弹出一个对话框就行啊追问
是第二种,但是我有8个checkBOX,如果这样循环判断,那得判断多少次呀?
追答你最后肯定有个提交按钮吧,就在那个提交监听事件中把这8个checkbox的状态获取到,如果没有选中就给他弹个对话框提醒他选一个
追问ok,谢谢
本回答被提问者采纳 参考技术D 你是想要求他上来就选择一个 还是说提交事件的时候 必须有一个是选中的~第一种设置可以使用android:checked="true"属性设置CheckBox控件默认为选中状态,第二个在提交事件的时候循环判断然后看有几个选中弹出一个对话框就行啊你最后肯定有个提交按钮吧,就在那个提交监听事件中把这8个checkbox的状态获取到,如果没有选中就给他弹个对话框提醒他选一个
ExpandableListView的ChildView中的CheckBox
在我的Android应用程序中,我有一个ExpandableListView,每个组只有一个子节点,其中包含一个复选框。我在设置复选框的值时遇到了麻烦。
我正在从数据库中检索checkbox的值并将其存储在整数ArrayList中,值为0和1分别用于检查和取消选中
ArrayList<Integer> trustedList = new ArrayList<Integer>();
最初,我将数据库中的所有条目都设置为1。
ExpandableListView的Adapter类如下:
class DataAdapter extends BaseExpandableListAdapter {
private Context context;
LayoutInflater lat = getLayoutInflater();
CheckBox cb;
public DataAdapter(Context context) {
// TODO Auto-generated constructor stub
this.context = context;
}
@Override
public View getChildView(int group, int child, boolean arg2, View v,
ViewGroup arg4) {
// TODO Auto-generated method stub
v = lat.inflate(R.layout.inflate_list, null);
cb = (CheckBox) v.findViewById(R.id.checkBox1);
if (trustedList.get(group) == 1)
cb.setChecked(true);
else
cb.setChecked(false);
return v;
}
}
但我正在获取复选框的未选中值。此外,在选中复选框并折叠和展开组时,我再次取消选中复选框。
答案
class DataAdapter extends BaseExpandableListAdapter {
private Context context;
LayoutInflater lat = getLayoutInflater();
CheckBox cb;
public DataAdapter(Context context) {
// TODO Auto-generated constructor stub
this.context = context;
}
@Override
public View getChildView(int group, int child, boolean arg2, View v,
ViewGroup arg4) {
// TODO Auto-generated method stub
v = lat.inflate(R.layout.inflate_list, null);
cb = (CheckBox) v.findViewById(R.id.checkBox1);
if (trustedList.get(group) == 1)
cb.setChecked(true);
else
cb.setChecked(false);
cb.setOnCheckChangeListener(new CheckchangeListener(group) );
return v;
}
class CheckchangeListener implements OnCheckedChangeListener {
private int position;
public CheckchangeListener(int position) {
// TODO Auto-generated constructor stub
this.position= position;
}
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
//updateyour list and database here
} else {
//updateyour list and database here
}
}
}
}
以上是关于Android中的checkBOX在代码中怎么设置至少选中一个?的主要内容,如果未能解决你的问题,请参考以下文章
android怎么用代码给checkbox设置style-CSDN论坛
Android 在listview里itme中有imagebutton 怎么监听这个button?