我在中扩展AbsListView.MultiChoiceModeListener
了多项选择功能ListView
,我想动态地更改操作菜单(当ListView
选择了一项以上时)。
private class ModeCallback implements ListView.MultiChoiceModeListener { //inflate menu public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.compose_multi_select_menu, menu); } public boolean onPrepareActionMode(ActionMode mode, Menu menu) { //want to remove some menu here, but not work if (getListView().getCheckedItemCount() > 1) { MenuItem item = menu.getItem(5); menu.removeItem(); } } }
我尝试删除MenuItem
中onPrepareActionMode()
,但不起作用。也尝试 mode.invalidate()
过onItemCheckedStateChanged()
。
其实,我在找onPrepareActionMode()
的menu
传递没有MenuItem
在所有。
有人可以帮忙吗?
您可以通过显示或隐藏如下项来修改onItemCheckedStateChanged()中的菜单:
Menu menu = mode.getMenu(); menu.findItem(R.id.some_item_id).setVisible(false);
其中,mode
被ActionMode
传递到onItemCheckedStateChanged