Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复选框验证,仅获取复选框_Java_Android - Fatal编程技术网

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
。A
RadioGroup
是但不是
CheckBoxGroup
。请参阅
CompoundButton#setoncheckedchangedlistener()
方法一种方法就像您可以从容器中获取子项列表并检查是否选中。正如@pskink所说的,请参阅setoncheckedchangedlistener()():--可能的重复项没有
CheckBoxGroup
。A
RadioGroup
是但不是
CheckBoxGroup
。谢谢,我不知道我可以用那种方式找到id。无论如何,请检查我上面的评论。我期待着你的想法。谢谢,我不知道我可以用那种方式找到id。无论如何,请检查我上面的评论。我在看继续你的想法。