بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

غیر فعال نمودن آیتم های لیست ویو پس از کلیک نمودن بر روی یکی از آنها

مدیریت گفتگو
محمد 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام. فرض کنید یه لیست ویو داریم که 3 تا آیتم رو نشون میده. میخوام وقتی روی یکی از اون آیتمها کلیک کردم بقیه آیتمها غیر فعال بشن و نشه روشون کلیک کرد.

با تشکر فراوان

 

نظرات

MeY3am 10 سال پیش
فکرکنم بشه با onitemSetChangeListener کاری انجام داد !
محمد 10 سال پیش
از دوستان کسی واسه این مشکل راه حلی نداره؟!
javac 10 سال پیش
باید در کلاس StructItem تون یک flag بزارید وقتی یک آیتم روش کلیک میشه flagش true میشه و بقیه false میشه و موقع کلیک این flag رو هربار چک میکنید.
محمد 10 سال پیش
ممنون javac عزیز. داخل متد fill فقط به آیتمی که روش کلیک میکنم دسترسی دارم و نمیتونم آیتمهای دیگه رو تغییر بدم، چجوری flag بقیه آیتمها رو تغییر بدم؟ توی stackoveflow پیشنهاد کردن که از متد areAllItemsEnabled و متد isEnabled استفاده کنیم ولی متاسفانه نتونستم بفهمم این 2 تا متد چجوری کار میکنن.
javac 10 سال پیش
آرایه تون رو از طریق کانستراکتور CustomAdapter دریافت کنید و اونجا تغییرات رو اعمال کنید

پاسخ‌ها 1

محمد 10 سال پیش

خیلی ممنون javac عزیز. حل شد.

داخل StructUser:

 public Boolean canClick= true;

داخل ادبتر:

 static ArrayList<StructUser> araye =new ArrayList<StructUser>();

داخل کانستراکتور:

 public AdapterGroupElements(ArrayList<StructUser> array) {
super(G.context, R.layout.adapter_group_elements, array);
araye = array;
}

داخل متد fill:

     layoutRoot.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (!item.canClick) {
return;
}
for (int i = 0; i < araye.size(); i++) {
araye.get(i).canClick = false;
}

// do what you want

final Intent intent = new Intent(G.currentActivity, ActivitySelectedStudent.class);
G.currentActivity.startActivity(intent);

for (int i = 0; i < araye.size(); i++) {
araye.get(i).canClick = true;
}
}

});

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .