如何在androidstudio中通过按下按钮来选中一组复选框?

hgncfbus  于 2021-07-04  发布在  Java
关注(0)|答案(1)|浏览(455)

我试图在单击按钮时标记复选框组。我动态添加了这些复选框。
这里我有一些复选框(在这个例子中只有4个复选框,但可以有更多):

Checkbox checkboxes1;
Checkbox checkboxes2;
Checkbox checkboxes3;
Checkbox checkboxes4;

checkboxes1.setId(1);
checkboxes2.setId(2);
checkboxes3.setId(3);
checkboxes4.setId(4);

问题是,当我尝试手动检查所有这些文件时。我有这个密码:

public void onCheckboxAllChecked(View view){
Checkbox addAll;
for(int i = 0; i < 4; i++){
addAll = findViewById(i);
addAll.setChecked(true);
}
}

但当我试图按下按钮,使所有的复选框被选中,应用程序停止并突然关闭。
我把它放在for循环中,因为可以有更多的复选框(将由用户定义要动态添加多少复选框)。
那么,如何解决这个问题呢?我做错什么了?
注意:问题不在于创建复选框,因为它们被创建得很好,当我单独选中每个复选框时,效果很好。问题是通过单击一个按钮同时检查它们。

ao218c7q

ao218c7q1#

据我所知 findViewById 方法用于检索 View 在xml文件中定义。一种方法是使用 List .

private List<Checkbox> checkboxes = ArrayList<>();

private void addCheckbox(Checkbox cbx) {
    // Add this checkbox to the layout dinamically
    parentLayout.addView(cbx);

    checkboxes.add(cbx);
}

private void checkAllCheckboxes() {
    for (Checkbox cbx : checkboxes) {
        cbx.setChecked(true);
    }
}

相关问题