检查 ListView 中所有复选框的正确方法? [英] Correct way to check all checkboxes in ListView?
本文介绍了检查 ListView 中所有复选框的正确方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个设置为 CHOICE_MODE_MULTIPLE 的 ListView.我还有额外的标题要管理(un) 选择所有项目.问题是:这样做是否正确?好吧,它有效,但是我不确定那是正确的方法.正如你在下面看到的,有一个 checkAllCheckBoxes我传递给标题 onClickListener() 方法的对象.你怎么认为?如有任何答复,我们将不胜感激.
I have a ListView with set CHOICE_MODE_MULTIPLE. I also have additional header to manage (un)selecting all the items. The question is : is it correct way to do that? Well it works, however I'm not sure thats proper way. As you see below there is an checkAllCheckBoxes object which I pass to header onClickListener() method. What do you think? Would be grateful for any responses.
private OnClickListener checkAllCheckboxes = new OnClickListener(){
public void onClick(View v) {
ListView lv = getListView();
int size = getListAdapter().getCount();
if(lv.isItemChecked(0)){
for(int i = 0; i<=size; i++){
lv.setItemChecked(i, false);
}
} else {
for(int i = 0; i<=size; i++){
lv.setItemChecked(i, true);
}
}
}
};
推荐答案
你可以像这样优化你的代码:
You can optimize your code like this :
替换
if(lv.isItemChecked(0)){
for(int i = 0; i<=size; i++){
lv.setItemChecked(i, false);
}
} else {
for(int i = 0; i<=size; i++){
lv.setItemChecked(i, true);
}
}
由
boolean check = lv.isItemChecked(0);
for(int i = 0; i <= size; i++)
lv.setItemChecked(i, !check);
这篇关于检查 ListView 中所有复选框的正确方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文