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?

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.

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.

  • Android - mismo OnClickListener para TextView y ImageView
  • Cómo manejar múltiples clics de diseño en recyclerView en Android
  • Múltiples botones `OnClickListener ()` android
  • Cómo pasar los parámetros a OnClickListener?
  • ¿Cómo puedo eliminar OnClickListeners de ViewHolders de RecyclerView cuando se eliminan?
  • Android - ¿Puedo usar setOnLongClickListener y setOnClickListener para el mismo botón?
  • Declarando que una clase implementa OnClickListener vs. declarándolo usted mismo?
  • Cuál es el mejor rendimiento Wise: setOnClickListener VS android: onclick = "onClick"
  • Añada dinámicamente funcionalidad a la función onclicklistener de Button en Android
  • Oyente onclick en android
  • El mejor lugar para adjuntar onClickListener en recyclerview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.