2015-06-30 2 views
5

У меня есть требование, например, когда я долгое время нажимаю на текст в своем веб-представлении, нажимая длинное нажатие, я должен установить свои пользовательские пункты контекстного меню вместо «выбрать», «выбрать все», «веб-поиск».Как переопределить контекстное меню выбора текста webview?

Пожалуйста, помогите мне.

enter image description here

Хотелось бы, чтобы переопределить эти по умолчанию "выбрать все", "копировать", "доля", "поиск в Интернете". в этом месте захотите разместить мое меню.

+0

Посмотрите на [это] (Http: // StackOverflow. com/questions/22336903/use-a-custom-context-action-bar-for-webview-text-selection). –

+0

Может быть, этот ответ может помочь вам: [Как переопределить выбор текста по умолчанию для веб-браузера android] (http://stackoverflow.com/a/22563790/2722270) и [Использовать настраиваемую панель контекстных действий для выбора текста WebView] (http://stackoverflow.com/q/22336903/2722270) – li2

ответ

3

вы можете сделать некоторые пользовательские в методе деятельности: 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); 
} 
Смежные вопросы