У меня есть веб-просмотр в моей деятельности. Теперь, когда я использую метод WebView.findAll()
для поиска текста в веб-просмотре, он не выделяет совпадающие слова.
Он отлично работает в Android 1.6, но не работает в 2.2.
У меня есть веб-просмотр в моей деятельности. Теперь, когда я использую метод WebView.findAll()
для поиска текста в веб-просмотре, он не выделяет совпадающие слова.
Он отлично работает в Android 1.6, но не работает в 2.2.
В системе отслеживания проблем 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){}
В 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){}