2010-09-13 11 views
9

Tengo una vista web en mi actividad. Ahora cuando uso el método WebView.findAll() para buscar texto en la vista web, no se resaltan las palabras coincidentes.Problema de búsqueda de la vista web de Android 2.2

Funciona bien en Android 1.6 pero no funciona en 2.2.

+0

Tengo el mismo problema. ¿Se encontró alguna solución? –

+0

No, no encontré ninguna solución. –

+0

Necesito una solución para 4.0.3. La respuesta aceptada funciona para 2.2, pero no para 3.2 o superior. La respuesta de jianwu_chen funciona para 3.2, pero no para 4.0.3. –

Respuesta

15

Hay un problema en el seguimiento de incidencias Android en esto: http://code.google.com/p/android/issues/detail?id=9018

coloqué este código justo después de WebView.findAll(), y que hizo trabajo destacando:

try 
{ 
    Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
    m.invoke(webView, true); 
} 
catch (Throwable ignored){} 
+0

Muchas gracias su FUNCIONAMIENTO !!!!!!! –

+1

Esto suena como una manera desagradable de hacerlo. ¡Pero funciona! Gracias. –

+0

Tengo un problema aquí. Mi texto está resaltado pero el método findAll() devuelve 0. ¿No puedo entender por qué? Cualquier cadena que pueda tomar, los resalta correctamente, pero el método findAll() siempre devuelve 0. Cualquier ayuda sería apreciada :) – Antrromet

8

En androide 4.0.3, parece la setFindIsUp es un método privado. Entonces, el código anterior no funcionará. Como el método getMethod() no devolverá los métodos privados. Lo siguiente es una solución para llamar al método privado que funciona para 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){} 
+0

Aunque este código encuentra con éxito "setFindIsUp", pero parece que no funciona para mí. Resaltar no aparece en 4.0.3, pero sí lo hizo con 2.2 (con este código). –

+0

Lo siento, funciona para 2.2 y 3.2, pero no para 4.0.3! Necesito una solución para 4.0.3! –

+0

Esto funciona en 4.2 – yuttadhammo

Cuestiones relacionadas