在android中的webview中突出显示所选文本

时间:2014-01-10 07:46:50

标签: android webview

我是android中的webview新手。我正在开发应用程序,我想在webview中标记所选文本。

image from tab

在这里,我想删除右侧菜单并更改完成菜单的文本,点击“完成”后,我想在webview中标记带颜色的文本(突出显示文本)。

有人可以有任何想法吗?

请回复。等待有价值的回复。

1 个答案:

答案 0 :(得分:2)

我不知道如何控制选择上下文操作栏。但是你可以阻止它显示并用你自己的版本替换它。首先,创建一个扩展WebView的HighlightWebView类,并包含此覆盖:

@Override
public android.view.ActionMode startActionMode(android.view.ActionMode.Callback callback) {
    // this will start a new, custom Contextual Action Mode, in which you can control
    // the menu options available.
    highlightActivity.startActionMode(highlighActionModeCallback);

    // this is to prevent the native text selection ActionMode
    return null;
}

您还需要创建HighlightActionModeCallback类。这是实现ActionMode.Callback的一个非常基本的类:

public class HighlightActionModeCallBack implements ActionMode.Callback {

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // TODO Auto-generated method stub
        mode.getMenuInflater().inflate(R.menu.highlight_menu, menu);
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        // TODO Auto-generated method stub
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        // TODO Auto-generated method stub
        return false;
    }

} 

您还想要谷歌"上下文行动模式"和/或"上下文操作栏"了解更多信息。