【发布时间】:2012-03-17 22:04:44
【问题描述】:
我有一个 ListView 子类,我允许在上下文操作栏 (CAB) 处于活动状态时进行选择。 CAB 设置为对onItemLongClick 事件的回调:
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(context_menu, menu);
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
return true;
}
这很好,ListView 按预期工作,当前选定的项目在触摸时保持突出显示。
当我关闭 CAB 时,我希望 ListView 恢复正常(即触摸模式)。问题是最后选择的项目无限期地保持突出显示,无论我尝试什么方法清除它:
public void onDestroyActionMode(ActionMode mode) {
//Unselect any rows
ListView lv = getListView();
lv.clearChoices(); // Has no effect
lv.setChoiceMode(ListView.CHOICE_MODE_NONE); // Has no effect on the highlighted item
lv.setFocusable(false); // Has no effect
lv.setSelection(0); // Has no effect
mActionMode = null;
}
有什么建议吗?
【问题讨论】:
标签: java android android-listview