我正在尝试在我的webView中搜索单词。这是我的搜索方法:
public void filterWebView(String query){
if (query != null) {
mQuery = query;
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
view.findNext(true);
int c = view.findAll(mQuery);
try {
Method method = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
method.invoke(view, true);
} catch (Throwable ignored) {}
} else {
view.findAllAsync(mQuery);
view.findNext(true);
try {
Method method = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
method.invoke(view, true);
} catch (Throwable ignored) {}
}
}
});
mWebView.loadUrl(mDocUrl);
}}
它适用于API版本&lt; 16,但对于API 16和&gt; 16,此方法查找所有单词,但findNext()不起作用。
如果我在API&lt; 16中设置查询并调用此方法10次,则会获得下一个结果(如果存在),但每次突出显示相同的单词时,在API&gt; 16中。
我的方法的第二部分有什么问题,在其他之后{... ???
答案 0 :(得分:0)
请参阅WebView.findNext的文档:http://developer.android.com/reference/android/webkit/WebView.html#findNext(boolean)
特别是,如果你在findAllAsync之前调用findNext,它将什么都不做。另请注意,findAllAsync异步执行,因此您可能希望在WebView上注册FindListener以获取结果。 (见http://developer.android.com/reference/android/webkit/WebView.html#setFindListener(android.webkit.WebView.FindListener))