setCustomSelectionActionModeCallback
各 TextViews でを使用する必要があります。
ブール値を持つことができます:
boolean on = true;
次に、実際に CAB を次のように編集するメソッドを作成します。
private void editContextualActionBar(ActionMode actionMode, Menu menu) {
if (on) {
// adds a new menu item to the CAB
// add(int groupId, int itemId, int order, int titleRes)
menu.add(0, R.id.action_to_be_performed, 1, R.string.action_name);
} else {
// removes the new menu item
menu.removeItem(R.id.action_to_be_performed);
}
}
最後に、onCreateActionMode で editContextualActionBar メソッドを使用して TextView の Callback を呼び出し、onActionItemClicked でメニュー アクションを実行します。
textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
editContextualActionBar(mode, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.action_to_be_performed:
// perform action
return true;
default:
break;
}
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
});