Xamarin androidban, ha van egy adapterem, és azon belül 2 gombom, akkor, hogy rakok rájuk click eseményt?
ha az adapteren belül adom meg akkor ugyan meg át tudom adni a megfelelő értéket a megfelelő helyre, de amint frissítem az adaptert a click esemény lefut az összes elemre.
adapter:
List<Elemek> lista;
btn1.click += (sender, e) => { lista[position].opcio1 = "teszt"};
btn2.click += (sender, e) => { lista[position].opcio2 = "teszt2"};
ha rákattintok a btn1 gombra, akkor kizárólag a pozícióra kattintott listaelem módosul(ez így teljesen jó), de amint az activityben meghívom újra az adaptert, a program úgy érzékeli, hogy a click esemény még mindig él és az összes pozícióra lefut ez a kód: lista[position].opcio1 = "teszt", tehát az egész lista opció értéke teszt lesz, holott én csak egy bizonyos pozíciónak szerettem volna azt az értéket.
ha létrehozol egy adaptert, akkor azon belül van egy metódus:
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView ?? activity.LayoutInflater.Inflate(Resource.Layout.adapter, parent, false);
Button btn1 = view.FindViewById<Button>(Resource.Id.btn1);
Button btn2 = view.FindViewById<Button>(Resource.Id.btn2);
btn1.click += (sender, e) => { lista[position].opcio1 = "teszt"};
btn2.click += (sender, e) => { lista[position].opcio2 = "teszt2"};
return view;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!