获取所选复选框android的文本?

时间:2014-06-09 09:12:59

标签: android checkbox android-activity

我的活动xml中有5个复选框。我需要获取所有选中复选框的文本。

一种方法是查看checkbox1是否缺失()并获取文本。

    if(checkbox1.isChecked())
       { String text=checkbox1.getText().toString();}

等等。

这是一个非常漫长的过程。

我还可以使用其他方法吗?

4 个答案:

答案 0 :(得分:3)

一些基本建议:

  1. 您无需{上述==true操作,因此简单的if(checkbox1.isChecked())就足够了。

  2. 将它们全部存储在ArrayList中,以便您可以按以下方式进行迭代:

    List<CheckBox> items = new ArrayList<CheckBox>();
    for (CheckBox item : items){
           if(item.isChecked()) 
              String text=item.getText().toString();
    }
    

答案 1 :(得分:2)

CheckBox[] nameString = new CheckBox[]{Array1, Array2, Array3, Array4, Array5, Array6, Array7, Array8};

for (int i=0; i<=7; i++)
{
    if (nameString[i].isChecked())
    {
       Toast.makeText(getApplicationContext(), nameString[i].getText().toString(), Toast.LENGTH_SHORT).show();
    }
}

答案 2 :(得分:1)

您可以在onCHeckedChanged()或{{{}}创建一个列表 选定的项,而不是遍历所有复选框以查找其中的哪一个。 {1}}

onClick()

答案 3 :(得分:0)

Kotlin 示例代码:

您可以创建一个事件并将相同的事件绑定到所有复选框,例如

<CheckBox
    android:id="@+id/chk1"
    android:onClick="onCheckBoxClicked" ....


<CheckBox
    android:id="@+id/chk2"
    android:onClick="onCheckBoxClicked" ....

主要活动:

  fun onCheckBoxClicked(view:View){
    view as CheckBox

    if (view.isChecked){
        var msg = view.text.toString()
        Log.d("Checkbox", msg)          //printing in log
    }