我時,我在我的網絡視圖中的文本長按點擊長按,我應該將我的自定義上下文菜單項,而不是「選擇」,「全選」,「網頁搜索」之類的要求。如何覆蓋webview的文本選擇上下文菜單?
請幫幫我。
想覆蓋這些默認的 「全選」, 「複製」, 「共享」, 「網頁搜索」。在這個地方想要放置我的自定義菜單。
我時,我在我的網絡視圖中的文本長按點擊長按,我應該將我的自定義上下文菜單項,而不是「選擇」,「全選」,「網頁搜索」之類的要求。如何覆蓋webview的文本選擇上下文菜單?
請幫幫我。
想覆蓋這些默認的 「全選」, 「複製」, 「共享」, 「網頁搜索」。在這個地方想要放置我的自定義菜單。
不幸的是,你需要從網頁視圖類擴展和覆蓋onCreateContextMenu
方法。
見Use a custom contextual action bar for WebView text selection
你可以做一些自定義的活動方法:onActionModeStarted(ActionMode模式), 就像這樣:
@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);
}
看看[這裏](HTTP://計算器。 com/questions/22336903/use-a-custom-contextual-action-bar-for-webview-text-selection)問題。 –
可能是這樣的回答可以幫助你:如何重寫的Android的WebView的默認文本選擇](http://stackoverflow.com/a/22563790/2722270),這[使用的WebView文本選擇自定義上下文操作欄] (http://stackoverflow.com/q/22336903/2722270) – li2