Cómo obtener el oyente de una vista
Escribo un servicio que interactúa con otras aplicaciones. Registra a los oyentes en las vistas (botones, vistas de texto, ...) que ya tienen oyentes. Necesito reemplazarlos con mis propios oyentes (trabajos), hacer algunas cosas y luego cancelar el registro de mis oyentes y restaurar los antiguos.
Se está ejecutando una aplicación con un botón con un onClickListenerMi servicio registra un onClickListener dentro de UI-Thread + para hacer algoMi servicio restaura al antiguo oyente.Sería fácil, si hubiera unview.getOnClickListener
-método. Entonces podría salvar a los viejos y reemplazar a los nuevos oyentes cuando termine.
¿Hay alguna manera de obtener oyentes de una vista o tener más de un oyente del mismo tipo vinculado a una vista?
Button btn = (Button) findViewById(R.id.btn1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//do something
}
});
// I need to do, but found no solution for that.
View.OnClickListener oldListener = btn.getOnClickListener();
Si registro los nuevos oyentes en una vista, los antiguos se anularán, ¿verdad? También estaría bien si ambos oyentes ("nuevo" y "viejo") existan al mismo tiempo. Sólo los viejos no deben irse.
Edición: Lamentablemente no tengo la posibilidad de guardar el oyente en la asignación. Necesito recuperarlo desde el componente de vista.
Gracias