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

فراخوانی یک کلاس

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

سلام 

ببخشید ممکنه که یک کلاس رو جای دیگه ای از برنامه اجرا کنیم درواقع ببینید می خوام با رخ دادن یک اتفاق اکتیویتی که توش هستم رفرش بشه و تغییرات بدون اینکه از یک اکتیویتی به اکتیویتی دیگه برم و برگردم با تغییر یک مقدار رفرش بشه ؟ !

نظرات

پاسخ‌ها 2

سجاد زهره ای 11 سال پیش

سلام اگه بخواین Activity رو refresh کنید از کد زیر استفاده کنید

  finish();
startActivity(getIntent());

نظرات

alireza 11 سال پیش
خیلی ممنون بابت پاسخی که دادین ولی یه سوال این کد رو باید انتهای اکتیویتی که می خوام رفرش بشه بنویسم چه جوریه نحوه استفاده ازش ؟ من در واقع می خوام وقتی مثلا از دیتا بیس یک داده رو دریافت کردم مثلا true اونوقت مجددا ActivityMain دوباره رفرش بشه و نکته ای که هست من این داده رو در کلاس G دریافت می کنم و می خوام اگر این داده true بود ActivityMain ام دوباره اجرا بشه ؟
سجاد زهره ای 11 سال پیش
نگاه من کلیت کاری که دارین انجام میدینو نمیدونم مثلا اگه لیست ویو داشته باشین قضیه فرق داره یا اینکه مثلا گرید ویو داشته باشین بازم فرق داره ولی به طور کلی شما هروقت اطلاعات رو گرفتین این کد رو فراخوانی کنید!برای تست این کد رو داخل رویداد یه دکمه بزارین تا متوجه بشین چه اتفاقی میوفته
alireza 11 سال پیش
امتحان کردم توی یک رویداد دکمه جواب داد ولی ببینید من یه لیست ویو دارم که اطلاعات رو از دیتابیس گوشی که توی یک کلاس دیگه ساخته شده می گیره و به صورت یک لیست ویو نمایش می ده حالا ممکنه اطلاعات دیتا بیس من تغییر کنه مثلا یک ردیف بهش اضافه بشه وقتی این اضافه شد من یک متغیر رو true می کنم می خوام با true شدن این متغیر لیست ویوی من اپدیت بشه درواقع حالا شاید اون true کردنه کار بی خودی باشه و به درد نخوره ولی در کل کاری که می خوام انجام بدم اینه کلاسی که لیست ویوی من رو از اطلاعات دیتابیس می سازه رو یکبار دیگه اجرا کنم ؟ ..
alireza 11 سال پیش
در واقع ببینید من چیزی که می خوام انجام بدم خیلی خلاصه اینه توی یک دستور شرط در کلاس مثلا G بگم کلاس ActivityMain رو یکبار دیگه اجرا کن !
alireza 11 سال پیش
در واقع ببینید من چیزی که می خوام انجام بدم خیلی خلاصه اینه توی یک دستور شرط در کلاس مثلا G بگم کلاس ActivityMain رو یکبار دیگه اجرا کن !
سجاد زهره ای 11 سال پیش
بنظر من اصلا شما نباید اکتیویتی رو refresh کنی!مگه شما adapter نداری؟
alireza 11 سال پیش
چرا دارم خب باید چکار کنم ؟
alireza 11 سال پیش
چرا دارم ! خب باید چکار کنم ؟
alireza 11 سال پیش
چرا دارم ! خب باید چکار کنم با ادپتر ؟
alireza 11 سال پیش
چرا دارم ! خب باید چکار کنم با ادپتر ؟
alireza 11 سال پیش

چرا دارم ! خب باید چکار کنم با ادپتر ؟ 

نظرات

سجاد زهره ای 11 سال پیش
نگاه باید از این کد استفاده کنی هرموقع که اطلاعات رو گرفتی adapter.notifyDataSetChanged()
alireza 11 سال پیش
خب من این رو قبلا امتحان کردم ولی جواب نمی ده و چیزی به لیست ویوی من اضافه نمی کنه تا یه بار از اکتیوی خارج و دوباره وارد بشم صرفا نوشتن این کد به تنهایی بی فایدست ظاهرا ، نمی دونم شایدم من اشتباه استفاده می کنم شما خودتون تا حالا امتحان کردین این رو ؟ اگه همچین کاری کردین ممنون میشم یه مقدار دقیق تر بگین چه طور باید لیست ویو رو بدون خارج شدن ازش اپدیت کنم الان چند روز در گیر این موضوع هستم رفرش کردن جواب میده ولی ظاهر بدی به برنامه میده اگه بشه فقط ایتم های جدید اضافه بشه مثل دستور ()adapter.remove که ایتم رو حذف می کنه ایتمی رو اضافه کرد خیلی خوب میشه بازم ممنون
alireza 11 سال پیش
باز به غیر از این مساله خود اجرای مجدد یک کلاس در کلاس G هم واسم مهمه این هم جدا از اپدیت لیست ویو هست که توی کلاس G به ازای یک شرط کدی بنویسم که مجددا کلاس main ام رو اجرا کنه ... برای این موضوع پیشنهادی ندارین شما ؟
سجاد زهره ای 11 سال پیش
در مورد رفرش لیست ویو منم زیاد به مشکل برخوردم دلیلشم این بود که جای درست از کد استفاده نمیکردم یا هزاران مشکل دیگه!در مورد کلاس G هم شما اگه میخوای تکه کدی رو که داخل کلاس G هس اجرا کنید پیشنهاد من اینه که اونو داخل یه متد بزارین و بهد اون متد رو فراخوانی کنید به همین راحتی
alireza 11 سال پیش
اوکی . ممنون
alireza 11 سال پیش
یه مشکلی هست متدی که من بخوام تعریف کنم توش UI هم هست و این مساله ساز میشه !! می دونید منظورم چی هست ؟ خطا می گیره اونوقت چون باید متدم static تعریف بشه دیگه درسته ؟ در این صورت findviewbyId رو خطا می گیره و میگه تعریف کن !!
سجاد زهره ای 11 سال پیش
UI در کلاس G???????چجوری؟مگه کلاس G اکتیویتی هس؟
alireza 11 سال پیش
نه جناب ui توی کلاس main تعریف شده و من می خوام کلاس main رو بگم در کلاس G تحت شرایطی در کلاس G مطرح شده دوباره اجرا بشه
سجاد زهره ای 11 سال پیش
خب همون شرط رو بنویس و بعد داخل شرط startActivity رو فراخوانی کن
محمدجواد 11 سال پیش
این بحثیه که بارها تو سایت مطرح شده و جواب درست و درمون هم به داده نشده. خود من یه بار این سوال رو مطرح کردم که چطور میشه بعد از مثلا حذف یک آیتم از لیست ویو بدون اجرای دوباره اکتیویتی اون رو آپدیت کرد. متاسفانه سوال خیلی هاست و جواب کافی و وافی هم بهش داده نشده. کاش به بار واسه همیشه این بحث حل شه
alireza 11 سال پیش
واقعا کاش ... من الان شاید و هفته هست در گیر این هستم باز ممنون
سجاد زهره ای 11 سال پیش
شما اگه از اون کد بالا استفاده کنید مشکلتون حل میشه فقط محل قرار دادن اون کد مهمه همین وگرنه چیز خاصی نداره منم خودم خیلی درگیرش بودم

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