2012-05-04 6 views
27

Ich benutze Webview für die Anzeige von Inhalten in Android Honeycomb (3.x). Ich habe ein benutzerdefiniertes Aktionsmenü zum Ausschneiden, Kopieren und Einfügen erstellt. Wie kann ich den ausgewählten Text in Webview kopieren, indem ich mein angepasstes Aktionsmenü benutze?Android Textauswahl In Webview

+0

dies hilfreich sein könnte ... http://stackoverflow.com/questions/1111844/selecting-text-in-a-webview – Ronnie

+2

Hat die Antwort dir helfen? Dann akzeptiere es bitte. Wenn nicht, erkläre bitte, was noch nicht funktioniert. –

Antwort

8

kann es helfen, Will ...

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); 
} 

}

Got von https://stackoverflow.com/a/1113204/638987

+0

Es funktioniert auf Android 3.2! Einige andere Antworten auf vorgeschlagene boolesche Parameter in emulateShiftHeld --- es ist nicht korrekt! Verwenden Sie "null" wie im obigen Code und es wird für Sie arbeiten! –

+0

Unter Android 4.0.3 m.invoke (webView, null) verursachen nativen Absturz '09-21 23: 20: 49.151: A/libc (4103): schweres Signal 11 (SIGSEGV) bei 0x00000014 (Code = 1)'. –

-2

unten Code Versuchen ...

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); 
    } 
} 

und Rufen obige Verfahren, wo immer Sie wollen ...

emulateShiftHeld(mWebView); 
für weitere Details

dies sehen ... Android: how to select texts from webview

+0

Dies ist Code für Android 2.2. Surej veröffentlicht Code, der sowohl für Android 2.2 und 3.2 funktioniert, aber dies ist immer noch ein Problem für Android 4. * (Ice Cream Sandwich). Der obige Code macht nichts unter Ice Cream Sandwich. –