Ho un'applicazione Android con ListView, ListView si installa bene ma ora voglio che l'immagine in ListView sia selezionabile. Lo faccio usando 2 classi, la classe Activity (genitore) e un ArrayAdapter per riempire la lista. In ArrayAdapter implemento un OnClickListener per l'immagine nell'elenco che desidero essere selezionabile.Come fare clic su OnClick nella chiamata dell'adapter di ListView Funzione attività
Finora tutto funziona.
Ma ora voglio eseguire una funzione dalla classe di attività quando onClick, per l'immagine nell'elenco, viene eseguito ma non so come. Di seguito sono le 2 classi che uso.
prima classe di attività:
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
}
}
E l'ArrayAdapter da dove voglio chiamare una funzione della classe di attività:
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;
}
}
Se qualcuno sa come far funzionare la funzione nell'attività classe dall'arrayadapter o come impostare l'immagine onClickListener nella classe di attività mi piacerebbe molto apriciate l'aiuto.
Grande. Semplice ed efficace. –