AndroidのWebViewの画面長押しでテキスト選択を開始する方法

前からずっと実現できないなーと思っていたんですが超簡単な方法がありました。

WebChromeClientのonSelectionStartは

328    public void  onSelectionStart(WebView view) {
329        // By default we cancel the selection again, thus disabling
330        // text selection unless the chrome client supports it.
331        view.notifySelectDialogDismissed();
332    }

のような実装になっていて*1、デフォルト動作として「テキスト検索をキャンセルする」ようになっています。

なのでこれをさらに無効化すればいいんですね。

Android: how to select texts from webview - Stack Overflow

webView.setWebChromeClient(new WebChromeClient(){
    public void onSelectionStart(WebView view) {
    }
});

なるほどー。

ちなみに onSelectionStart メソッドが追加されたのは GrepCode で見る限り Android 2.3 らしいです。ブラウザのコピー&ペースト機能が搭載されたのはAndroid 2.3からなので当然ですねw