gpt4 book ai didi

android - 选择 ListView 的所有项目(带有复选框的自定义行)

转载 作者:可可西里 更新时间:2023-11-01 18:59:22 27 4
gpt4 key购买 nike

我有什么:我有一个带有自定义行的 ListView,每行有一个 CheckBox 和两个 TextView。我有一个“全选”按钮。

我想要什么:我希望当我点击按钮时,ListView 中的所有 CheckBox 都被选中/取消选中。

问题是什么:在“全选”按钮的 OnClick 中。我这样做:

public void OnClickSelectAllButton(View view)
{
ListView l = getListView();
int count = l.getCount();
for(int i=0; i<count; ++i)
{
ViewGroup row = (ViewGroup)l.getChildAt(i);
CheckBox check = (CheckBox) row.findViewById(R.id.checkBoxID);
check.setChecked(true); // true for select all and false for unselect all etc..
}
}

这里 l.getChildAt(i) 只给我可见的项目。当索引超出可见项目时,就会出现问题。我想检查列表中的所有复选框,而不仅仅是可见的。

最佳答案

它会发生,因为 ListView 适配器重用了 View 。您尝试执行的方式不正确。我认为您不应该通过子 ListView 访问 ListView 行。

在您的 Activity 中引入一个变量,它将保存当前状态 (boolean checkAll)。当用户按下按钮时,它必须将“checkAll”设置为 true,并调用 notifyDataSetChanged()(对于 arrayadapter),或ListView 的适配器。在适配器的 getView() 方法中引入对此标志的检查,因此 if (checkAll) {check the check box}

关于android - 选择 ListView 的所有项目(带有复选框的自定义行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com