2015-06-30 18 views
5

Ho un requisito come quando premo a lungo sul testo nella mia visualizzazione web facendo clic su lunga pressione, dovrei impostare le mie voci di menu contestuale personalizzate invece di "seleziona", "seleziona tutto", "ricerca web".Come sovrascrivere il menu di scelta rapida della selezione del testo di Webview?

Per favore aiutatemi.

enter image description here

desidera sovrascrivere questi default "seleziona tutto", "copia", "share", "ricerca sul web". in questo posto voglio posizionare i miei menu personalizzati.

+0

Date un'occhiata a [questo] (http: // StackOverflow. it/questions/22336903/use-a-custom-contestual-action-bar-per-webview-text-selection) domanda. –

+0

Potrebbe essere questa risposta può aiutare: [Come ignorare la selezione del testo predefinito di Android Webview] (http://stackoverflow.com/a/22563790/2722270), e questo [Utilizzare una barra di azione contestuale personalizzata per la selezione del testo WebView] (http://stackoverflow.com/q/22336903/2722270) – li2

risposta

3

si può fare un po 'personalizzato in modo di attività: onActionModeStarted (modalità ActionMode), proprio come questo:

@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); 
} 
Problemi correlati