9

我的活动中有一个网络视图。现在,当我使用WebView.findAll()方法在 webview 中搜索文本时,它不会突出显示匹配的单词。

它在 Android 1.6 中运行良好,但在 2.2 中无法运行。

4

2 回答 2

15

Android 问题跟踪器中有一个关于此的问题:http ://code.google.com/p/android/issues/detail?id=9018

我把这段代码放在后面WebView.findAll(),它使突出显示工作:

try
{
    Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
    m.invoke(webView, true);
}
catch (Throwable ignored){}
于 2011-02-01T07:23:40.867 回答
8

在 android 4.0.3 中,似乎 setFindIsUp 是一个私有方法。所以上面的代码是行不通的。因为 getMethod() 方法不会返回私有方法。以下是调用适用于 4.0.3 的私有方法的解决方法:

try{
    //Can't use getMethod() as it's a private method
    for(Method m : WebView.class.getDeclaredMethods()){
        if(m.getName().equals("setFindIsUp")){
            m.setAccessible(true);
            m.invoke(view, true);
            break;
        }
    }
}catch(Exception ignored){}  
于 2012-05-28T07:09:32.683 回答