Java 复选框验证,仅获取复选框
我在我的应用程序中有很多复选框,我发现如果每个项目都被选中或没有选中,我会很不方便。所以我想知道是否有一种方法可以只选中一个复选框而忽略一堆未使用的复选框 现在,我的想法是这样做Java 复选框验证,仅获取复选框,java,android,Java,Android,我在我的应用程序中有很多复选框,我发现如果每个项目都被选中或没有选中,我会很不方便。所以我想知道是否有一种方法可以只选中一个复选框而忽略一堆未使用的复选框 现在,我的想法是这样做 if (cb1.isChecked()) //do something if (cb2.isChecked()) //do something ... if (cb32.isChecked()) //do something 但我发现每一个复选框都太多了。有没有办法只获取选定的 示例 一个CheckBox
if (cb1.isChecked()) //do something
if (cb2.isChecked()) //do something
...
if (cb32.isChecked()) //do something
但我发现每一个复选框都太多了。有没有办法只获取选定的
示例
一个CheckBoxGroup您可以在其中执行类似于CheckBoxGroup.getCheckedItems()的操作
我查了好几个图书馆,但这样不行。
任何帮助都将不胜感激,提前感谢!干杯 我建议您创建复选框列表。然后使用For循环或Do While循环仅使用选中的复选框创建新数组。
通过这种方式,在新列表中,您将只获得选中的复选框我建议您创建复选框列表。然后使用For循环或Do While循环仅使用选中的复选框创建新数组。
通过这种方式,在新列表中,您将只获得选中的复选框您可以执行以下步骤:
1) 首先获取所有复选框的父项的引用。(它可能是任何类型布局的实例;例如查找线性布局。例如
LineartLayout parent = (LinearLayout)findViewById(R.id.linearlayout);
2) 然后创建字符串值的Arraylist;说
ArrayList<String> checkedList = new ArrayList();
ArrayList checkedList=新建ArrayList();
3) 然后像这样运行for循环
for(int i=0; i<parent.getChildCount(); i++){
if(parent.getChildAt(i) instanceof CheckBox){
CheckBox checkBox = (CheckBox)parent.getChildAt(i);
if(checkBox.isChecked()){
checkedList.add(checkBox.getText());
}
}
}
对于(int i=0;i您可以执行以下步骤:
1) 首先获取所有复选框的父项的引用。(它可能是任何类型布局的实例;例如查找线性布局。例如
LineartLayout parent = (LinearLayout)findViewById(R.id.linearlayout);
2) 然后创建字符串值的Arraylist;说
ArrayList<String> checkedList = new ArrayList();
ArrayList checkedList=新建ArrayList();
3) 然后像这样运行for循环
for(int i=0; i<parent.getChildCount(); i++){
if(parent.getChildAt(i) instanceof CheckBox){
CheckBox checkBox = (CheckBox)parent.getChildAt(i);
if(checkBox.isChecked()){
checkedList.add(checkBox.getText());
}
}
}
for(int i=0;i使用此循环,通过其名称查找复选框:
for (int i = 1; i <= 32; i++) {
int id = getResources().getIdentifier("cb" + i, "id", getPackageName());
CheckBox cb = findViewById(id);
if (cb.isChecked()) {
// your code
}
}
for(int i=1;i使用此循环,通过其名称查找复选框:
for (int i = 1; i <= 32; i++) {
int id = getResources().getIdentifier("cb" + i, "id", getPackageName());
CheckBox cb = findViewById(id);
if (cb.isChecked()) {
// your code
}
}
for(int i=1;i尝试为所有的checbox设置一个OnCheckedChangeListener
。如
复选框1
CheckBox checkBox1 = findViewById(R.id.check_box1);
checkBox.setOnCheckedChangeListener(checkedChangeListener );
单个OnCheckedChangeListener
用于n个复选框:
CompoundButton.OnCheckedChangeListener checkedChangeListener = new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
switch (buttonView.getId())
{
case R.id.check_box1:
if (isChecked)
{
//logic 1
}
else
{
//logic 2
}
;
break;
}
}
};
使用in开关处理所有复选框。尝试为所有复选框设置一个单一的OnCheckedChangeListener
。如
复选框1
CheckBox checkBox1 = findViewById(R.id.check_box1);
checkBox.setOnCheckedChangeListener(checkedChangeListener );
单个OnCheckedChangeListener
用于n个复选框:
CompoundButton.OnCheckedChangeListener checkedChangeListener = new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
switch (buttonView.getId())
{
case R.id.check_box1:
if (isChecked)
{
//logic 1
}
else
{
//logic 2
}
;
break;
}
}
};
使用in开关处理所有复选框。请参见CompoundButton#setoncheckedchangelister()
方法一种方法就像您可以从容器中获取子项列表,并检查是否选中。正如@pskink所说,请参见setoncheckedchangelister():--可能的重复项没有CheckBoxGroup
。ARadioGroup
是但不是CheckBoxGroup
。请参阅CompoundButton#setoncheckedchangedlistener()
方法一种方法就像您可以从容器中获取子项列表并检查是否选中。正如@pskink所说的,请参阅setoncheckedchangedlistener()():--可能的重复项没有CheckBoxGroup
。ARadioGroup
是但不是CheckBoxGroup
。谢谢,我不知道我可以用那种方式找到id。无论如何,请检查我上面的评论。我期待着你的想法。谢谢,我不知道我可以用那种方式找到id。无论如何,请检查我上面的评论。我在看继续你的想法。