【问题标题】:Get text of selected checkboxes android?获取所选复选框的文本android?
【发布时间】:2021-04-09 23:08:10
【问题描述】:

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

一种方法是查看 checkbox1 是否被选中()并获取文本。

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

等等。

这是一个相当漫长的过程。

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

【问题讨论】:

标签: android checkbox android-activity


【解决方案1】:

几个基本建议:

  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();
    }
    

【讨论】:

    【解决方案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();
        }
    }
    

    【讨论】:

    • 请考虑添加一点解释。
    【解决方案3】:

    您可以简单地在onCHeckedChanged()onClick() 创建一个选定 项目的列表,而不是遍历所有复选框以查找其中一个被选中

    If(unChecked)==>Add to List==> if(Checked) ==> Remove from list
    

    【讨论】:

      【解决方案4】:

      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
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-03
        • 1970-01-01
        • 1970-01-01
        • 2013-10-26
        相关资源
        最近更新 更多