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

بروز کردن لیست ویو بعد از بستن دیالوگ

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

سلام بچه ها

توی برنامه‌ام نیاز دارم که کاربر محتوای متنی لیست ویو رو تغییر بده

وقتی روی edit کلیک میکنه یه dialog باز میشه براش که متن جدید رو وارد میکنه و OK میزنه و دیالوگ بسته میشه.

مشکل من اینجاست که بعد از بسته شدن دیالوگ لیست ویو بروز رسانی نمیشه (چون onResum صدا نمیشه) و تا یه بار از activity خارج نشه و دوباره نیاد لیستم به روز نمیشه.

        btnOk.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                            String newText = edtChangeQuestion.getText().toString();
                            G.UpdateDataBase(item.getID(), newText); //update DATABASE with new value
                            G.UpdateLists();  //update list in DATABASE
                            myListClass.updateMyList(); //update my listView
                            adapter.notifyDataSetChanged() 
                            DialogEdit.dismiss();
                        }
                    });

این لینک، این و این هم مشکل من رو مطرح کردن ولی پاسخ مناسبی داده نشده.

نظرات

کاشی زاده 11 سال پیش
بعد از dismiss کد مورد نظر برا آپدیت کردن لیستتون رو بنیسید.
Rabbit 11 سال پیش
ممنون از رهنماییت، انجام دادم اما نتیجه نداد.
کاشی زاده 11 سال پیش
خب adapter.notifyDataSetChanged() طبیعتا باعث بروز رسانی لیست ویو شما میشه ولی احتمال داره مقادیر لیست تغییر نکنه . بهتره کد مربوط به بروز رسانی لیست رو بررسی کنید احتمالا در بروزرسانی لیست ایرادی هست .
Rabbit 11 سال پیش
آخه اگر ایراد از کد بروز رسانی بود وقتی از اگتیویتی خارج میشم و دوباره وارد میشم هم نباید تغییر میکرد. من هم متوجه نمیشم حتی به صورت static تابع notifyDataSetChanged رو از داخل کلاسی که لیست رو نمایش میده هم صدا زدم نتیجه نداد!
محسن 11 سال پیش
میتونی بعد از نوتیفای کردن اکتیویتی رو ریست کنی
Rabbit 11 سال پیش
آره این که میشه ولی میخوام تو همون اکتیویتی که هستم بتونم update کنم لیستم رو
ajn91 11 سال پیش
احتمالا خطا از این قسمت هست myListClass.updateMyList(); چون وقتی اکتیویتی اجرا میشه این کد رو که استفاده نمیکنید و این کد تنها یک بار و برای اپدیت لیست استفاده میشه.
Rabbit 11 سال پیش
نه کد خطایی نداره وگرنه با فراخونده شدن onResum هم همین توابع صدا میشن که اون موقع درست کار میکنن، مشکل رو اینجوری حل کردم که مقدار آرایه ای که از dataBase میخونه رو دستی تو کد تغییر دادم به مقدار جدید. اینجوری تا اکتیویتی زنده‌است که مقدار جدید رو درست نشون میده بعدش هم میره از تو db مقدار درست رو مجددا میخونه و مشکلی پیش نمیاد.

هنوز پاسخی ثبت نشده است


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