Android Programming TIPS(2)
WebViewで選択文字列をクリップボードにコピーするには
Android1.5からブラウザのテキストを選択してコピーする機能が加わりました。WebViewを使用したアプリケーションでも使用したいところですが、これにはWebView#emulateShiftHeld() という非公開メソッドが使われています。emulateShiftHeld() はAPI Level8(Android2.2)から公開メソッドになりましたが、2.1以前のAndroidでは使用できません。
次のようにシフトキー押下イベントを発生させれば同様の効果が得られます。
public void selectAndCopyText() {
try {
KeyEvent shiftPressEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
shiftPressEvent.dispatch(mDefinitionView);
} catch (Exception e) {
throw new AssertionError(e);
}
}
元ネタはこちらです↓
http://cosmez.blogspot.com/2010/04/webview-emulateshiftheld-on-android.html