Android Checkbox listview选择全部(禁用/启用)

You*_*shi 7 checkbox android listview

我想禁用/启用listview中的所有复选框.infact想通过单击顶部复选框来选择所有行为.

谢谢

tho*_*nic 26

这是我最终工作的地方,我在使用游标适配器,而不仅仅是ArrayListAdapter我的列表项:

final ListView list = getListView();
for ( int i=0; i< getListAdapter().getCount(); i++ ) {
        list.setItemChecked(i, true);
}
Run Code Online (Sandbox Code Playgroud)

list.getChildCount不起作用,因为它似乎只计算立即绘制的内容(不是屏幕外的所有内容)所以childCount当整个列表是100个或更多项目时,可能只有6或8个项目.另外,我必须使用list.setItemChecked这些项目来"保持检查" - 至少在我的情况下我的列表项是实例CheckedTextView.


Abh*_*nda 20

for(int i=0; i < listView.getChildCount(); i++){
    RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
    CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
    cb.setChecked(true);
}
Run Code Online (Sandbox Code Playgroud)

您需要编辑此代码以处理启用和禁用,但我希望您明白这一点!

此外,这仅检查每个复选框,确保从列表中返回id或对象,以便将数据发送/保存到其他位置.

  • 这仅检查当前视图中的项目.因此,如果您的listView包含的项目数量超过了视图可以显示的项目,则不会检查所有项目.Thom Nichols的答案确实是正确的解决方案. (3认同)