检查ListView中所有复选框的正确方法?

Dan*_*Dan 9 android android-listview

我有一个ListView,设置为CHOICE_MODE_MULTIPLE.我还有额外的标题来管理(联合)选择所有项目.问题是:这样做是否正确?嗯它有效,但我不确定这是正确的方式.如下所示,有一个checkAllCheckBoxes对象,我将其传递给头onClickListener()方法.你怎么看?对任何回复都会感激不尽.

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);
            }
        }
    }

};
Run Code Online (Sandbox Code Playgroud)

Dal*_*mas 9

您可以像这样优化代码:

更换

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

通过

    boolean check = lv.isItemChecked(0);
    for(int i = 0; i <= size; i++)
        lv.setItemChecked(i, !check);
Run Code Online (Sandbox Code Playgroud)