2014-01-10 75 views
2

我是android中webview的新手。我正在開發應用程序,我想在webview中標記選定的文本。在android中突出顯示webview中的選定文本

image from tab

在這裏,我想刪除右邊的菜單和改變做了,我想,以紀念網頁視圖與顏色(高亮顯示文本)的文本做菜單的文字和點擊。

任何人都可以有任何想法嗎?

請回復。等待寶貴的回覆。

+0

如何突出多個段落?在我的情況下,當我突出顯示相同段落內的文本工作正常,但是當我嘗試突出顯示不同段落中的文本突出顯示無法正常工作。它通過在所選文本之間添加間距來增加段落的大小。 – Shrikant

回答

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; 
    } 

} 

您還希望谷歌「上下文動作模式」和/或「上下文操作欄」瞭解更多信息。

+0

謝謝邁克。我會試試這個。感謝您的回覆。 –

+0

嗨邁克,其工作但滑動事件衝突此功能。你有什麼解決方案嗎? –

+0

@mikejonesguy你能否給我推薦一些教程,在CAB中單擊完成按鈕後,在WebView中永久地突出顯示文本。 –

相關問題