Ich habe eine Android-Anwendung mit einem ListView darin, der ListView wird gut eingerichtet, aber jetzt möchte ich ein Bild in der ListView anklickbar sein. Dazu verwende ich 2 Klassen, die Aktivitätsklasse (Eltern) und einen ArrayAdapter, um die Liste zu füllen. Im ArrayAdapter implementiere ich einen OnClickListener für das Bild in der Liste, auf die ich klicken möchte.Wie man OnClick in den ListView-Adapter-Anruf eingibt Aktivitätsfunktion
Bis jetzt funktioniert alles.
Aber jetzt möchte ich eine Funktion aus der Aktivitätsklasse ausführen, wenn der onClick, für das Bild in der Liste, ausgeführt wird, aber ich weiß nicht wie. Im Folgenden sind die 2 Klassen, die ich verwende.
Zuerst wird die Aktivitätsklasse:
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
}
}
Und die ArrayAdapter aus, wo ich will eine Funktion aus der Aktivitätsklasse nennen:
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;
}
}
Wenn jemand weiß, wie die Funktion in der Aktivität laufen Klasse aus dem Arrayadapter oder wie man das Bild onClickListener in der Activity Class einstellt, würde ich die Hilfe erheblich verbessern.
Großartig. Einfach und effektiv. –