Creación de OnClickListener personalizado
Tengo un ArrayList de botones donde mi OCL necesita saber qué índice me ha presionado. El plan es algo como esto:
MyOnClickListener onClickListener = new MyOnClickListener() { @Override public void onClick(View v) { Intent returnIntent = new Intent(); returnIntent.putExtra("deleteAtIndex",idx); setResult(RESULT_OK, returnIntent); finish(); } }; for (int i =0;i<buttonList.size();i++) { buttonList.get(i).setText("Remove"); buttonList.get(i).setOnClickListener(onClickListener); }
¿Cómo debe ser mi implementación de la OCL?
- RecyclerView onClick
- GetOnClickListener () en las vistas de Android
- ¿Cómo puedo activar el evento OnClick mediante programación en android?
- Android: cómo manejar el botón de clic
- Múltiples botones `OnClickListener ()` android
Actualmente tengo esto:
public class MyOnClickListener implements OnClickListener{ int index; public MyOnClickListener(int index) { this.index = index; } @Override public void onClick(View arg0) { }
}
Sin embargo, no estoy seguro de lo que tengo que hacer dentro del constructor de mi OCL, así como la función onClick
overriden.
- Cómo deshabilitar OnClickListerners
- Java Android - setOnClickListener (View.OnClickListener) en el tipo View no es aplicable para los argumentos (nuevo OnClickListener () {})
- OnClickListener Mantener pulsado el botón?
- Interfaces de Android y onCreate ()
- Configuración de un onClickListener en un texto de CheckBox
- Clase común para el oyente de clics
- Onclicklistener no está trabajando en recyclerview
- Eliminar un OnClickListener en una vista quitar todos los eventos de toque en las vistas detrás
setOnClickListener
a Button como:
buttonList.get(i).setOnClickListener(new MyOnClickListener(i));
EDIT:
Necesito terminar una actividad en myOCL, ¿cómo haría eso?
Para finalizar Actividad en el botón Haga clic en la clase que no sea de la actividad que necesitará para pasar el contexto de la actividad a su OnClickListener personalizado como:
buttonList.get(i).setOnClickListener(new MyOnClickListener(i, Your_Current_Activity.this));
Y cambie el constructor de su clase OnClickListener personalizada a:
int index; Context context; public MyOnClickListener(int index,Context context) { this.index = index; this.context=context; } @Override public void onClick(View arg0) { // now finish Activity as\ context.finish(); // OR // ((Activity)context).finish(); }
Cambiar su bucle for y crear nuevo objeto cada vez y pasar el índice en el constructor.
for (int i =0;i<buttonList.size();i++) { buttonList.get(i).setText("Remove"); buttonList.get(i).setOnClickListener(new MyOnClickListener(i)); }
Puede obtener índice en su método onClick.
View.OnClickListener myListener = new View.OnClickListener() { @Override public void onClick(View v) { Log.d("Button",v.getText().tostring); } });
Obtendrá el valor del botón a la vista por lo que, se encuentra que el índice es.
- ¿Cómo averiguar la orientación del texto dependiente de la configuración regional en java?
- ¿Cómo puedo eliminar una notificación de primer plano en Android Lollipop?