Cómo dejar OnClick en la función de la llamada de adaptador ListView de la actividad

Tengo una aplicación de Android con un ListView en él, el ListView va a configurar bien, pero ahora quiero una imagen en el ListView para ser clicable. Hago esto usando 2 clases, la clase de la actividad (padre) y un ArrayAdapter para llenar la lista. En el ArrayAdapter implemento un OnClickListener para la imagen en la lista que quiero que se pueda hacer clic.

Hasta ahora todo funciona.

Pero ahora quiero ejecutar una función de la clase de actividad cuando el onClick, para la imagen en la lista, se ejecuta pero no sé cómo. A continuación se presentan las 2 clases que utilizo.

Primero la clase de actividad:

public class parent_class extends Activity implements OnClickListener, OnItemClickListener { child_class_list myList; ListView myListView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // setup the Homelist data myList = new child_class_list (this, Group_Names, Group_Dates); myListView = (ListView) findViewById(R.id.list); // set the HomeList myListView.setAdapter( myList ); myListView.setOnItemClickListener(this); } void function_to_run() { // I want to run this function from the LiscView Onclick } public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // do something } } 

Y el ArrayAdapter desde donde quiero llamar a una función de la clase de actividad:

 public class child_class_list extends ArrayAdapter<String> { // private private final Context context; private String[] mName; private String[] mDate; public child_class_list (Context context, String[] Name, String[] Date) { super(context, R.layout.l_home, GroupName); this.context = context; this.mName = Name; this.mDate = Date; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.l_home, parent, false); ImageView selectable_image = (ImageView) rowView.findViewById(R.id.l_selectable_image); selectable_image.setOnClickListener(new OnClickListener() { public void onClick(View v) { // I want to run the function_to_run() function from the parant class here } } ); // get the textID's TextView tvName = (TextView) rowView.findViewById(R.id.l_name); TextView tvDate = (TextView) rowView.findViewById(R.id.l_date); // set the text tvName.setText (mName[position]); tvDate.setText (mDate[position]); return rowView; } } 

Si alguien sabe cómo ejecutar la función en la clase de actividad desde el arrayadapter o cómo establecer la imagen onClickListener en la clase de actividad que en gran medida apriciate la ayuda.

Dentro de onClick() Haz algo como esto:

 ((ParentClass) context).functionToRun(); 

Sólo por claridad para ampliar las respuestas proporcionadas En un BaseAdapter puede obtener la clase padre llamando a this.getActivity(); Si entonces typecast esto a la clase de actividad real usted puede entonces llamar una función según la respuesta de @AdilSoomro abajo así que usted termina realmente para arriba con algo como esto

 public class MyAdapter extends BaseAdapter<Long> { public MyAdapter(Activity activity, TreeStateManager<Long> treeStateManager, int numberOfLevels) { super(activity, treeStateManager, numberOfLevels); } @Override public void handleItemClick(final View view, final Object id) { ((MyActivity) this.activity).someFunction(); } } 

Entonces declare someFunction en MyActivity para hacer lo que quieras

  protected void someFunction(){ // Do something here } 
  • OnClick PendingIntent en widget a veces no funciona
  • Android no puede encontrar mi método onClick
  • Cómo evitar que la actividad se cargue dos veces al presionar el botón
  • Haga clic en el oyente en el botón de Android
  • ¿Cómo agregar onclicklistener a la vista de texto generada dinámicamente?
  • OnItemClickListener usando ArrayAdapter para ListView
  • ¿Cómo evitar disparar varias veces un evento onClick cuando el usuario presiona el botón más de una vez realmente rápido?
  • Iniciar nueva actividad desde ListFragment utilizando onListItemClick ()
  • Array @OnClick con identificadores opcionales (ButterKnife)
  • Android RSSI valor de Bluetooth devuelve -32768 siempre?
  • Cambiar vista en el flujo de portada - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.