8

我目前有一个ListView,它会激活'sActionBar中的 Contextual 。ListViewOnItemLongClickListener

我正在尝试通过单击它们来选择项目,但只有在上下文ActionBar启动时才能选择它们。

问题是,当我检查 时isItemChecked(),为了切换项目的选择状态,它总是返回与预期相反的结果。

这是我实现的方式OnItemClickListener

list.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        if (mActionMode != null){
            list.setItemChecked(position, !list.isItemChecked(position));
        }
        else{
            list.setItemChecked(position, false);
        }

    }

});

编辑:这很奇怪..此代码切换选择状态:

list.setItemChecked(position, list.isItemChecked(position));

到底是怎么回事!?

编辑2:啊,看起来android会自动检查和取消选中每个项目......有没有办法改变这种行为并自己处理?

4

1 回答 1

1

这是setItemChecked方法的文档:设置指定位置的选中状态

在行中

list.setItemChecked(position, !list.isItemChecked(position));

isItemChecked通过否定语句中的第二个争论明确地将其设置为与返回的相反

于 2015-11-22T07:12:49.533 回答