i eine eigene Listenansicht mit einem Image erstellt habe, zwei Textviews und einen Knopf jetzt i Problem konfrontiert bin, wenn ich versuche, auf diese Taste, um onClicklistner ich will andere Methode für jede TasteBenutzerdefinierte Listenansicht mit der Taste OnClickListener
getan werdenhier ist mein code für customlistview klasse ich habe temporäre onclicklistner für diese taste verwendet, die den toast "Gekauft" zeigt was ich tun möchte ist, dass nach dem klicken auf den button muss ich den preis für das essen zurückgeben.
class CustomListView extends ArrayAdapter {
public CustomListView(Context context, String[] resource) {
super(context,R.layout.custom_view , resource);
}
Toast toast= null;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater MyInflater = LayoutInflater.from(getContext());
View CustomView = MyInflater.inflate(R.layout.custom_view, parent, false);
String SingleItem= (String) getItem(position);
final TextView text =(TextView)CustomView.findViewById(R.id.Itemname);
final ImageView Image= (ImageView)CustomView.findViewById(R.id.icon);
final TextView Pricetag= (TextView)CustomView.findViewById(R.id.PriceTextView);
text.setText(SingleItem);
switch (SingleItem)
{
case "Chicken":
Image.setImageResource(R.drawable.desert1);
Pricetag.setText("Rs 300");
break;
case "soap":
Image.setImageResource(R.drawable.desert2);
Pricetag.setText("Rs 300");
break;
case "Fish":
Image.setImageResource(R.drawable.fish);
Pricetag.setText("Rs 100");
break;
default:
Image.setImageResource(R.drawable.myimage);
Pricetag.setText("Rs 0.00");
break;
}
final Button Buybutton= (Button)CustomView.findViewById(R.id.BuyButton);
toast = Toast.makeText(getContext(), "", Toast.LENGTH_LONG);
Buybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast.setText("Bought");
toast.show();
}
});
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast.setText(text.getText().toString());
toast.show();
}
});
return CustomView;
}
}
können Sie Ihre Adapterklasse ändern mit einigen benutzerdefinierten Array von Objekten zu arbeiten (und nicht nur string), ex 'MyItems' die Artikelnamen enthalten wird, und der Preis und weitere Daten benötigt. so können Sie alles an einem Ort arbeiten. Zurück zu Ihrer Frage, wie viele Methoden möchten Sie anrufen können? Sie können 'Buybutton.setTag()' für die Schaltfläche mit einigen Ganzzahlen verwenden, dann 'onClick (View v)' basierend auf 'v.getTag()' können Sie entscheiden, welche Methode aufgerufen werden soll. – Yazan
Können Sie Beispiel mit einem Arbeitscode geben? das wäre wirklich hilfreich ...Ich will mehr als 30 Methoden –
WOW, auch das ist zu viel, Sie werden 1- erstellen 30 Methode, 2- haben eine if-Anweisung mit 30 'wenn sonst 'ich kann Ihnen Beispiel zeigen, aber warum erklären Sie nicht der Fall besser (bearbeiten Sie die Frage) und sagen Sie uns, warum Sie 30 Methode brauchen, können wir Ihnen bessere Möglichkeit, es zu tun, mit weniger Methoden zu implementieren – Yazan