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