如何覆盖WebView的文本选择上下文菜单?

6
我有一个需求,就是当我在web view中长按文本并点击长按时,我应该设置我的自定义上下文菜单项目,而不是“选择”、“全选”、“网页搜索”。
请帮助我。
我想要覆盖默认的“全选”、“复制”、“分享”、“网页搜索”,在这个位置放置我的自定义菜单。

请看这个问题:链接 - Roozbeh
2个回答

3

您可以在Activity方法中进行自定义:onActionModeStarted(ActionMode mode),就像这样:

@Override
public void onActionModeStarted(ActionMode mode) {
    if (mActionMode == null) {
        mActionMode = mode;
        Menu menu = mode.getMenu();
        menu.clear();
        getMenuInflater().inflate(R.menu.YOUR_MENU, menu);
        List<MenuItem> menuItems = new ArrayList<>();
        // get custom menu item
        for (int i = 0; i < menu.size(); i++) {
            menuItems.add(menu.getItem(i));
        }
        menu.clear();
        // reset menu item order
        int size = menuItems.size();
        for (int i = 0; i < size; i++) {
            addMenuItem(menu, menuItems.get(i), i, true);
        }
        super.onActionModeStarted(mode);
    }
}


/**
 * add custom item to menu
 * @param menu
 * @param item
 * @param order
 * @param isClick
 */
private void addMenuItem(Menu menu, MenuItem item, int order, boolean isClick){
    MenuItem menuItem = menu.add(item.getGroupId(),
            item.getItemId(),
            order,
            item.getTitle());
    menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    if (isClick)
        // set custom menu item click
        menuItem.setOnMenuItemClickListener(this);
}

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接