2012年10月5日

【Android】WebViewでキーワードをハイライトする方法


今回はWebView内でキーワード検索した場合に、
検索ワードをハイライトする方法を紹介します。



String keyword = (EditText) findViewById(R.id.edit_text)).getEditableText().toString();
try {
    WebView webView = (WebView) findViewById(R.id.web_view);
    webView.findAll(keyword);
    for(Method m : WebView.class.getDeclaredMethods()) {
        if(m.getName().equals("setFindIsUp")) {
            m.setAccessible(true);
            m.invoke(webView, true);
            break;
        }
    }
} catch(Exception e) {}

onClickListener等にこちらを登録しておけば検索キーワードがハイライトされます。