选中/取消选中TableLayout中的多个复选框

本文关键字:复选框 TableLayout 取消 选中 | 更新日期: 2023-09-27 18:06:50

我有一个TableLayout;第一个TableRow的第一列是CheckBoxTableLayout和第一个TableRow.axml文件中创建。我在.cs文件中创建并填充TableRows的其余部分。每个以编程方式创建的TableRow的第一列也是CheckBox

在第一个TableRow中使用CheckBox,我想选中/取消选中所有通过编程创建的复选框。

在Windows窗体应用程序中,我将通过将复选框收集到一个数组中并遍历该数组来设置每个复选框的checked属性来实现这一点。在我的Android应用程序中,我不知道如何做到这一点。

选中/取消选中TableLayout中的多个复选框

您需要在TableLayout中遍历所有TableRows,找到您的复选框并勾选/取消勾选它们。为此,向第一个复选框的click事件添加一个侦听器,它的作用如下:

//Number of TableRows
var count = tableLayout.ChildCount;
//Position of you checkbox inside each TableRow
//TODO: make this a constant outside the listener method
var checkBoxPosition = 0;
for (int i = 0; i < count ; i++) {
    var tableRow = tableLayout.GetChildAt(i) as TableRow;
    if (tableRow != null) {
        var checkBox = tableRow .GetChildAt(checkBoxPosition) as CheckBox;
         if (checkBox != null) {
             //TODO: Use state of the main checkbox here
             checkBox.Checked = true;
         } 
    }
}