我正在实现ActionMode.Callback和一些ListView的东西。我的问题是,当我处于选择模式ListView.CHOICE_MODE_MULTIPLE中并且检查了某些项目时,我无法清除选择。

我正在尝试这样做:

getListView().clearChoices();
getListView().setChoiceMode(ListView.CHOICE_MODE_NONE);


但是所选项目仍然保持选中状态。这是我的整个实现:

private class ActionModeCallback implements ActionMode.Callback
{
    public boolean onCreateActionMode(ActionMode mode, Menu menu)
    {
        actionMode = mode;
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.main_cab_menu, menu);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        return true;
    }


    public boolean onPrepareActionMode(ActionMode mode, Menu menu)
    {
        return false;
    }


    public boolean onActionItemClicked(ActionMode mode, MenuItem item)
    {
        return true;
    }


    public void onDestroyActionMode(ActionMode mode)
    {
        getListView().clearChoices();

        getListView().setChoiceMode(ListView.CHOICE_MODE_NONE);
        actionModeCallback = null;
        actionMode = null;

    }
};


请帮我解决这个问题。

最佳答案

我不认为更改模式应该清除您的选择,而且一旦设置,我也不会尝试更改选择模式...似乎是个坏主意。

而不是这样做,为什么不使用所制造的方法来清除诸如clearChoices()之类的选择列表?

简单的例子:

ListView lv = getListView();
lv.clearChoices();

09-26 04:21