Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting text in a WebView?

Tags:

android

The browser does this by calling public void emulateShiftHeld() method on the WebView which is hidden in the SDK.
Any other options?

like image 986
yanchenko Avatar asked Jul 10 '09 20:07

yanchenko


1 Answers

From the class that extends WebView:

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

And then you have to use ClipboardManager to watch for new text.

Works on Android 1.5 - 2.3. emulateShiftHeld() made public since 2.2.

like image 87
yanchenko Avatar answered Nov 11 '22 15:11

yanchenko