我的活动xml中有5个复选框。我需要获取所有选中复选框的文本。
一种方法是查看checkbox1是否缺失()并获取文本。
if(checkbox1.isChecked())
{ String text=checkbox1.getText().toString();}
等等。
这是一个非常漫长的过程。
我还可以使用其他方法吗?
答案 0 :(得分:3)
一些基本建议:
您无需{上述==true
操作,因此简单的if(checkbox1.isChecked())
就足够了。
将它们全部存储在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
}