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:
- Android - Cómo deshabilitar el botón Buscar, cómo implementar onSearchRequested ()?
- ¿Cómo evitar múltiples botones al mismo tiempo en android?
- Obligar a un botón a permanecer en la parte inferior de la pantalla del teléfono
- Haga clic en el botón de Android dos veces para recibir el evento de clic
- Cómo obtener referencia a un botón creado en un cuadro de diálogo personalizado, utilizando un diseño xml?
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.
- El botón se mueve al agregar texto de varias líneas
- Cómo implementar OnClickListener en Android
- Desactivación del botón de Android si los campos de texto están vacíos
- ¿Cómo desactivar un botón de Android?
- Cambiar el texto de un botón dentro de un ListView en Android
- Android - haga clic en el botón de registro y tome medidas basadas en la selección de radio
- Establecer el enfoque a un botón
- Las guías de la API de Android son un poco confusas para mí sobre el atributo android: onClick XML
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.
- Android canvas save siempre java.io.IOException: abierto fallido: ENOENT (No hay tal archivo o directorio)
- Eliminación de la barra de estado de Android en el diseño gráfico de Eclipse