我的活动中有一个webview。现在,当我使用WebView.findAll()
方法在webview中搜索文本时,它不会突出显示匹配的单词。
它在Android 1.6中运行良好,但在2.2中无效。
答案 0 :(得分: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){}
答案 1 :(得分: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){}