2010-12-27 12 views
24

¿Es posible conectar múltiples oyentes OnClick a botones en Android? Ejemplo:¿Adjunta múltiples oyentes a las vistas en Android?

btn1.setOnClickListener(listener1); 
btn1.setOnCliclListener(listener2); 

Y cuando se hace clic en el botón de evento de clic de ambos listener1 y listener2 se activan?

En aplicaciones de GUI normales, sé que podemos adjuntar más de un controlador de eventos para un evento. ¿Es posible para Android también o hay alguna restricción?

Saludos, Lalith

Respuesta

30

Android sólo es compatible con un detector registrado en general. Sin embargo, puede crear fácilmente un oyente que simplemente reenvía los eventos a otros oyentes utilizando el patrón compuesto.

+0

Podría por favor hágamelo saber todas las referencias de este? – Lalith

+1

@Lalith: el patrón compuesto es un patrón de diseño clásico: http://en.wikipedia.org/wiki/Composite_pattern – CommonsWare

+0

Hmm .. la razón principal por la que necesito varios controladores de eventos para un solo evento es que tengo la intención de crear una biblioteca que ser utilizado por otros desarrolladores de Android. Se supone que se ha inicializado en algún lugar y va por sí solo adjuntando los controladores de eventos necesarios a cada elemento de la Vista. Hice esto en Silverlight fácilmente así que me preguntaba si eso es posible. – Lalith

0

No, por ejemplo, acaba de hacer esto:

Conjunto Oyente:

btn.setOnClickListener(this); 

implementar el método:

public void Onclick(View arg0){ 

    // check your id and do what you want 
} 
2
public void onClick(View v) { 
    if(v.getId() == R.id.button1) { 
     // do this 
    }else if(v.getId() == R.id.button2) { 
     // do that 
    } 
} 
Cuestiones relacionadas