انتخاب تمامی آیتم های لیست ویو
من یه لیست ویو دارم که حاوی checkbox و textview hsj و اولین آیتم اون قرار کار CheckALL رو انجام بده میشه لطفا من رو برای انجام این کار راهنمایی کنید
متشکرم
کل اطلاعات لیست ویو شما داخل یه آرایه است دیگه درسته؟
حالا مثلا شما میخواید همه checkbox ها تیک بخورن یا به عبارتی مقدارشون true بشه. برای این کار شما کافیه با یه حلقه، تمام اون مقادیر آرایه رو true یا 1 یا هرچیز دیگه ای که برای true شدن checkbox ها تعریف کردید ، بکنید.
و در آخر هم دستور notifyDataSetChanged رو برای رفرش کردن لیست صدا بزنید
من بالای لیست ویو یه چک باکس گذاشتم برای selectALL و در Onclick اون کد زیر رو نوشتم :
اما فقط آیتم هایی که دیده میشوند چک میخورند وآیتم هایی که با اسکرول خوردن دیده می شوند چک نمی خورند
chkselct.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
boolean isChecked = chkselect.isChecked();
for (int i = 0; i < lstContent.getChildCount(); i++) {
CheckBox cb = (CheckBox) lstContent.getChildAt(i).findViewById(R.id.chkDone);
cb.setChecked(isChecked);
}
}
});
خوشم میاد چیزی که نوشتی دقیقا بر اساس جواب قبلیم بود.
من که گفتم باید آرایه ای که باهاش لیست رو پر کردی تغییر بدی و در آخر یه notiifyDataSetChanged صدا بزنی نه اینکه مستقیم چکباکس ها رو تیک بزنی
مثلا اگه آرایه ای داری به نام myArray که از نوع Struct ساخته شده و چک باکس ها رو با فیلد check پر میکنی:
chkselct.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
boolean isChecked = chkselect.isChecked();
for (MyStruct struct : myArray) {
struct.check=isChecked ;
}
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .