setChoiceMode(ListView.CHOICE_MODE_NONE)后仍然检查ListView项

时间:2012-08-12 15:33:34

标签: java android android-listview android-actionbar

我正在实施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;

    }
};

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我不相信改变模式应该清除你的选择,并且我不会尝试改变选择模式一旦设置......似乎是一个坏主意。

为什么不使用清除clearChoices()等选项列表的方法,而不是这样做?

简单示例:

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