【问题标题】:How to add more options to Android default Contextual Action Bar如何向 Android 默认上下文操作栏添加更多选项
【发布时间】:2016-02-04 22:19:33
【问题描述】:

我们知道,默认情况下,在视图上选择一些文本后,android 会显示带有一些默认选项的上下文操作栏 (CAB),例如:复制、剪切、全选...

现在,我想要一个应用程序(只有 2 个选项:ON/OFF),如果我打开它,一些其他选项将添加到默认 CAB。如果我将其关闭,我的自定义选项将从 Android 默认 CAB 中删除。

我的问题是:是否可以在此默认 CAB 中添加/删除某些选项?上面的申请怎么办?

谢谢!

【问题讨论】:

  • TextView.setCustomSelectionActionModeCallback 是您要找的。​​span>
  • 如何将此更改应用于所有应用程序的所有 TextView?正如我所提到的,我想制作一个只有 2 个选项 ON 和 OFF 的应用程序:如果我选择 ON,一些选项将添加到 CAB,如果我选择 OFF,它们将被移动。谢谢!

标签: android contextual-action-bar


【解决方案1】:

您必须在每个 TextView 上使用 setCustomSelectionActionModeCallback

你可以有一个布尔值:

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 上的回调,并在 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) {

        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2013-02-28
    • 2020-04-28
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多