我有一个上下文操作栏,其中有一个名为"DELETE"的设置。当我按下那个按钮时,我希望CAB菜单消失。
class MyActionModeCallBack implements android.view.ActionMode.Callback {
@Override
public boolean onCreateActionMode(android.view.ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.event_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(android.view.ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(android.view.ActionMode actionMode, MenuItem menuItem) {
int id = menuItem.getItemId();
if (id == R.id.delete) {
*******
_root.removeView(view);
// This is where I want to remove the CAB menu
*******
}
return false;
}
@Override
public void onDestroyActionMode(android.view.ActionMode actionMode) {
((RelativeLayout)view).removeAllViews();
view.setBackgroundColor(0xFF00FF00);
view.setTag(R.string.viewSelected, "0");
}
}
我想在_root.removeView(view);
之后立即调用onDestroyActionMode()
,但我不知道该传递什么参数。
欢迎提出任何建议,谢谢!
如果您试图隐藏所选项目,可以调用
menuItem.setVisible(false);
或者,如果你想从菜单中删除所有项目,你可以调用
optionsMenu.clear();
在onActionItemClicked()方法中。您可以将菜单保存到onCreateOptionsMenu方法中的字段,如下所示:
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
optionsMenu = menu
}
调用actionMode.finish()
。这将调用onDestroyActionMode()
回调。