Comment laisser OnClick dans l'appel de l'adaptateur de ListView
J'ai une application Android avec une ListView, le contrôle ListView installation bien, mais maintenant, je veux une image dans la liste à être cliquable. Je ne ce à l'aide de 2 classes, la classe d'Activité (parent) et un ArrayAdapter pour remplir la liste. Dans le ArrayAdapter-je mettre en œuvre un OnClickListener pour l'image dans la liste que je veux être cliquable.
Jusqu'à présent tout fonctionne.
Mais maintenant je veux exécuter une fonction de la classe d'activité lorsque le onClick, pour l'image dans la liste, mais je ne sais pas comment. Ci-dessous sont les 2 classes que j'utilise.
Première de la classe d'Activité:
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
}
}
Et la ArrayAdapter de l'endroit où je veux appeler une fonction de la classe d'Activité:
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 quelqu'un sait comment faire pour exécuter la fonction dans la classe d'activité de la arrayadapter ou comment mettre l'image onClickListener dans l'Activité de la Classe, je serais très apriciate l'aide.
source d'informationauteur user1321683
Vous devez vous connecter pour publier un commentaire.
À l'intérieur de
onClick()
Faire quelque chose comme ceci:Juste pour la clarté de s'étendre sur les réponses
Dans un BaseAdapter vous pouvez obtenir de la classe parente en appelant
this.getActivity();
Si vous transtypage ce à l'activité réelle de classe vous pouvez ensuite appeler une fonction, comme par @AdilSoomro réponse ci-dessous si vous avez réellement vous retrouver avec quelque chose comme ceEnsuite, il suffit de déclarer someFunction dans MyActivity à faire ce que vous voulez