Android OnLongClickListener comportamiento extraño / poco confiable
Actualmente estoy luchando contra OnLongClickListener en Android Api Lvl 8.
Toma este código:
this.webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
System.out.println("long click");
return true;
}
});
Funciona perfectamente Puedo presionar en cualquier lugar de WebView y el evento se dispara cada vez.
Ahora eche un vistazo a este:
this.webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
final EditText editText = getUrlTextField();
switch (editText.getVisibility()) {
case View.VISIBLE:
editText.setVisibility(View.GONE);
return true;
case View.GONE:
editText.setVisibility(View.VISIBLE);
return true;
default:
return false;
}
}
});
Asumiendo que los componentes URL EditText están actualmente visibles, desaparecen de la pantalla y deberían mostrarse nuevamente cuando se activa otro evento de clic largo. Pero si ejecuta esto, el evento solo funciona una vez (!) Cuando se realiza un clic largo en cualquier posición en la WebView. Para complicar las cosas, el clic largo funciona nuevamente cuando se realiza en un enlace en el sitio web ...
¿Alguien puede explicar si se trata de un error en el sdk y / o si hay un error al pensar cómo funciona OnLongClickListener? : /
EDITAR:
He ejecutado varios escenarios diferentes en un Nexus One y llego a la siguiente conclusión: cambiar el diseño en tiempo de ejecución mata más o menos el OnLongClickListener ... No he encontrado una manera de hacer que funcione de manera confiable ...
Realmente agradecería si alguien pudiera darme una pista ... Estoy en el extremo de mi ingenio :(