【问题标题】:How to check a group of checkboxes by pressing a button in Android Studio?如何通过按下 Android Studio 中的按钮来检查一组复选框?
【发布时间】:2020-12-24 22:02:09
【问题描述】:

单击按钮时,我试图标记复选框组。这些复选框是我动态添加的。

这里有一些复选框(在这个例子中只有 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 循环中,因为可以有更多的复选框(将由用户定义将动态添加多少个复选框)。

那么,如何解决这个问题呢?我做错了什么?

注意:问题不在于创建复选框,因为它们已经创建好,当我单独检查每个复选框时,它工作正常。问题是通过单击一个按钮同时检查所有这些。

【问题讨论】:

  • 展示你如何创建这些盒子。如果您的应用程序崩溃,您没有捕获到异常。查看 logcat 以找出答案。
  • findViewById(i) 应该使用不同的整数。不是我。

标签: java android android-studio kotlin checkbox


【解决方案1】:

据我所知,findViewById 方法用于检索 XML 文件中定义的一些 View。您可以采用的一种方法是使用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);
    }
}

【讨论】:

    猜你喜欢
    • 2014-04-16
    • 2015-06-19
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2019-02-07
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多