2011-09-28 12 views

Respuesta

4

Trabajando en Android 1.5 a 2.3 se puede utilizar emulateShiftHeld() pública realizados desde 2.2, pero ahora está en desuso. este método pone su WebView en el modo de selección de texto.

https://developer.android.com/reference/android/webkit/WebView.html#emulateShiftHeld%28%29

Desafortunadamente no hay pasta/Función de búsqueda de cuota de copiar// integrado en Android, ya que Android 2.0 del texto de selección puede ser conducido a través del tacto, pero aparte de eso, no hay otra cosa que puede hacer.

+0

¿Alguna de las cosas relacionadas con Javascript que puede sugerir para hacer esto? –

+0

@Drax La pregunta fue mal etiquetada. 'WebView' es una clase * Java * y Java! = JavaScript (y no hay" javascript "). Sin embargo, puede tratar de emular esto en * un documento mostrado por un 'WebView' * con secuencias de comandos DOM usando eventos táctiles. – PointedEars

-1

Prueba esto:

mWebView.setHapticFeedbackEnabled(true); 
mWebView.setLongClickable(true); 
2

He encontrado una solución para este Salida selectText método() en WebView (que no está en la API, pero se pueden invocar utilizando la reflexión)

aquí está mi completo código fuente método:

public void startTextSelection() { 
     try { 
      WebView.class.getMethod("selectText").invoke(this); 
     } catch (Exception e) { 
      try { 
       WebView.class.getMethod("emulateShiftHeld").invoke(this); 
      } catch (Exception e1) { 
       KeyEvent shiftPressEvent = new KeyEvent(0, 0, 
         KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
       shiftPressEvent.dispatch(this); 
       Toast.makeText(getContext(), R.string.select_text, Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

También funciona en ICS.

+0

Utilicé el código anterior, pero lamentablemente selectText se eliminó por completo de Android 4.1 (Jellybean), por lo que ya no funcionará. ¿Alguna sugerencia para 4.1? – Martin

+0

@Martin, así que tendré que buscar en el código fuente de 4.1, me pondré en contacto con usted tan pronto como encuentre la solución :) –

+0

Después de analizar android.webkit.WebViewClassic, he tenido cierto éxito con: – Martin

Cuestiones relacionadas