动作模式动态修改动作菜单

zhi*_*bin 3 android listview

我在中扩展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();
            }
        }

}
Run Code Online (Sandbox Code Playgroud)

我尝试删除MenuItemonPrepareActionMode(),但不起作用。也尝试 mode.invalidate()onItemCheckedStateChanged()

其实,我在找onPrepareActionMode()menu传递没有MenuItem在所有。

有人可以帮忙吗?

Vla*_*ich 6

您可以通过显示或隐藏如下项来修改onItemCheckedStateChanged()中的菜单:

Menu menu = mode.getMenu();
menu.findItem(R.id.some_item_id).setVisible(false);
Run Code Online (Sandbox Code Playgroud)

其中,modeActionMode传递到onItemCheckedStateChanged