当我按"选择所有"我想检查所有包含每个listview项目的复选框,这是我的布局::
enter code here
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// Handle item selection
switch (item.getItemId())
{
case R.id.mark_all:
{
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox);
checkBox.setChecked(true);
return true;
}
default:
return super.onOptionsItemSelected(item);
}
}
此代码仅选择一个具有第一个listview项目的复选框。谢谢
答案 0 :(得分:0)
使用for循环获取所有复选框
这里有一个例子:
boolean check = lv.isItemChecked(0);
for(int i = 0; i <= size; i++)
lv.setItemChecked(i, !check);
答案 1 :(得分:0)
使用for循环并获取包含复选框的视图:
for(int i = 0; i < listview.getChildCount(); i++)
{
View v = listview.getChildAt(i);
CheckBox ch = v.findViewById(R.id.checkbox);
ch.setSelected(true);
}
答案 2 :(得分:0)
首先在你的类中添加SparseBooleanArray
SparseBooleanArray mChecked = new SparseBooleanArray();
现在添加此功能以检查:
如果检查结果为真:检查所有项目
size = no of list vew item
public void setAllChecked(boolean check) {
int size = getCount();
if (check) {
for (int i = 0; i < size; i++) {
mChecked.put(i, true);
notifyDataSetChanged();
}
} else {
for (int i = 0; i < size; i++) {
mChecked.put(i, false);
notifyDataSetChanged();
}
}
现在在返回视图之前选中复选框状态
CheckbixID.setChecked((mChecked.get(position) == true ? true : false));