2012-05-04 20 views
27

Utilizzo la visualizzazione Web per la visualizzazione di contenuti in Android Honeycomb (3.x). Ho creato un menu azioni personalizzato per tagliare, copiare e incollare. Come posso copiare il testo selezionato in Webview usando il mio menu azioni personalizzato.Selezione del testo Android in Webview

+0

questo potrebbe essere di aiuto ... http://stackoverflow.com/questions/1111844/selecting-text-in-a-webview – Ronnie

+2

Forse la risposta Aiutarti? Quindi per favore accettalo In caso contrario, si prega di spiegare cosa non funziona ancora. –

risposta

8

Possa Aiuterà ...

public void selectAndCopyText() { 
try { 
    Method m = WebView.class.getMethod("emulateShiftHeld", null); 
    m.invoke(this, null); 
} catch (Exception e) { 
    e.printStackTrace(); 
    // fallback 
    KeyEvent shiftPressEvent = new KeyEvent(0,0, 
     KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
    shiftPressEvent.dispatch(this); 
} 

}

ricevuti dal https://stackoverflow.com/a/1113204/638987

+0

Funziona su Android 3.2! Alcuni altri rispondono al parametro booleano suggerito in emulateShiftHeld --- non è corretto! Usa "null" come nel codice sopra e funzionerà per te! –

+0

Sotto Anroid 4.0.3 m.invoke (webView, null) causa crash nativo '09-21 23: 20: 49.151: A/libc (4103): Segnale fatale 11 (SIGSEGV) a 0x00000014 (codice = 1)'. –

-2

Prova sottostante Codice ...

private void emulateShiftHeld(WebView view) 
{ 
    try 
    { 
     KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, 
               KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
     shiftPressEvent.dispatch(view); 
     Toast.makeText(this, "select_text_now", Toast.LENGTH_SHORT).show(); 
    } 
    catch (Exception e) 
    { 
     Log.e("dd", "Exception in emulateShiftHeld()", e); 
    } 
} 

e Call sopra il metodo dove vuoi ...

emulateShiftHeld(mWebView); 

per maggiori dettagli vedi questo ... Android: how to select texts from webview

+0

Questo è il codice per Android 2.2. Surej ha pubblicato il codice che funziona sia per Android 2.2 e 3.2, ma questo è ancora un problema per Android 4. * (Ice Cream Sandwich). Il codice sopra non fa nulla sotto Ice Cream Sandwich. –

Problemi correlati