Android- multi onClick escucha en un botón
Tengo enojado un componente de encargo como Mybutton.java y he fijado un oyente del onclick en Mybutton.java
Ahora, en mi nueva actividad, tengo que llamar a un Mybutton y agregar contenido en el oyente onclick, pero si un uso OnClickListener mClickListener = new OnClickListener () {…… que va a reemplazar el contenido antiguo espero que pueda hacer el viejo Y el nuevo oyente juntos
- MotionEvent.ACTION_UP en la vista de texto
- Cómo obtener cambios específicos de ChangeListener en Realm
- ¿Es posible crear un servicio Android que escuche las pulsaciones de teclas de hardware?
- Establecer oyente de clic largo para listview
- Android: ¿Utiliza una instrucción SWITCH con setOnClickListener / onClick para más de un botón?
Tengo la cierta cierta información, que conseguí puedo utilizar el método del instrumento pero trato muchas veces, todavía es errores
Puede alguien darme un ejemplo simple que puedo aprender a modificarlo
muchas gracias
- ¿Es posible que cuando haga clic edittext mostrará mensaje de diálogo?
- Evento para Android de larga duración
- Audífono personalizado de eventos de Android
- Cómo deshabilitar onItemSelectedListener que se invocará al configurar el elemento seleccionado por código
- Evento cuando se completa el FragmentTransaction
- Android: implementa el receptor de difusión para ClipboardManager
- Android ¿cuántos hilos puedo tener?
- Android: desliza hacia la izquierda. Detección de gestos
No creo que haya una API en la API de Android que permita varios oyentes onClick
. Necesitará alguna clase personalizada que maneje un solo onClick()
y pase en los controladores para que lo llame. Algo como esto:
private class CompositeOnClickListener implements View.OnClickListener{ List<View.OnClickListener> listeners; public CompositeOnClickListener(){ listeners = new ArrayList<View.OnClickListener>(); } public void addOnClickListener(View.OnClickListener listener){ listeners.add(listener); } @Override public void onClick(View v){ for(View.OnClickListener listener : listeners){ listener.onClick(v); } } }
Cuando ajuste los botones, haga lo siguiente:
CompositeOnClickListener groupListener = new CompositeOnClickListener(); myButton.setOnClickListener(groupListener);
Luego, cuando quiera agregar otro oyente, simplemente llame
groupListener.addOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ **** Custom implementation **** } });
Puede crear su clase de Button
personalizada algo como esto:
public class MyButton extends Button { private CustomOnClickListener mCustomOnClickListener; public interface CustomOnClickListener { void onClick(View v); } public MyButton(Context context) { super(context); // Set your own onClickListener View.OnClickListener ocl = new View.OnClickListener() { @Override public void onClick(View v) { // Do whatever you want to do // Invoke the other added onclick listener if(mCustomOnClickListener != null) { mCustomOnClickListener.onClick(v); } } }; setOnClickListener(ocl); } // use this function to set the other onclick listener public void setCustomOnClickListener(CustomOnClickListener cl) { mCustomOnClickListener = cl; } }
Y, úsalo así:
// create your button MyButton button = new MyButton(context); // add your custom onClickListener button.setCustomOnClickListener(new MyButton.CustomOnClickListener() { @Override public void onClick(View v) { // Do whatever you intend to do after the actual onClickListener // from MyButton class has been invoked. } });
- Debería usar android: showAsAction cuando no esté usando la librería appcompat
- Async Task Ocurrió un error al ejecutar doInBackground ()