Botón para Android onclick override

Me gustaría crear un CustomButton que tiene un onClick predefinido. De hecho, mi objeto haría el mismo trabajo que

 CustomButton mButton = getViewById(..); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { show_something() } 

¿Hay una manera de incrustar el Listener en el objeto CustomButton que hereda de Button? Lo que me gustaría es crear un CustomButton en mi archivo XML de diseño, y no tener que mencionar este botón en mi actividad, lo que daría:

Main.xml:

 <LinearLayout xmlns:"..."> <com.mypackage.view.CustomButton (attributes)/> </LinearLayout> 

CustomButton.java:

 class CustomButton extends Button implements... { @Override OnClick (or something like that, that's the core of my question, what to put here) } 

MyActivity.java

 public class myActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 

Muchas gracias.

Estabas muy cerca:

 import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class CustomButton extends Button implements OnClickListener{ public CustomButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public CustomButton(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CustomButton(Context context) { super(context); init(); } private void init(){ setOnClickListener(this); } @Override public void onClick(View v) { // Do something } } 

Utilice ese código:

 class CustomButton extends Button implements View.OnClickListener{ CustomButton(Context c, AttributeSet attrs) { ... setOnClickListener(this); ... } @override public void onClick(View v){ //add your code here } } 

En su clase de botón sólo implementar:

 @Override public void onClick(View v) { showSomething(); } 

O si desea un control más granular:

 @Override public boolean onTouchEvent(MotionEvent event) { showSomething(); } 

Puede implementar su lógica de clics en el método comprobando event.getAction () o enviándolo a GestureDetector para determinar cuándo se ha realizado un clic.

  • ¿Cómo probar un AlertDialog en Android?
  • Usando un bucle para establecer los botones enclicklistener
  • Botón de selección de Android MenuItem
  • ¿Cómo agregar un botón a las notificaciones en android?
  • Imagebutton establecer el tamaño de la imagen
  • Android: cómo saber si se mantiene pulsado el botón
  • Obtener referencias a las vistas en mi actividad de Android
  • Cómo abrir el cajón de navegación sin barra de acción, abrir con sólo un botón
  • Posición exacta de un botón dentro de un diseño
  • El botón no cambia su forma en el selector
  • Botón en el cambio visual del estado del tecleo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.