2012-08-12 39 views
2

我正在实施ActionMode.Callback和一些ListView的东西。我的问题是,当我在选择模式ListView.CHOICE_MODE_MULTIPLE,我检查了一些项目,然后我无法清除选择。ListView项目仍然检查setChoiceMode(ListView.CHOICE_MODE_NONE)

我想那样做:

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

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

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

简单的例子:

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