انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اعمال تغییرات در اکتیویتی قبلی هنگام بازگشت (در برنامه نویسی اندروید)

اعمال تغییرات در اکتیویتی قبلی هنگام بازگشت (در برنامه نویسی اندروید)

#1
سلام
وقت بخیر
من برای نمایش دیده شدن یا نشدن یک مطلب از دو تصویر در لیست ویو استفاده می کنم. و کدی رو در اکتیویتی که محتوا رو نمایش میده گذاشتم که وضعیت رو در دیتابیس تغییر میده
کد ها به درستی کار می کنند و وقتی کاربر از اون لیست ویو بیرون میره و مجددا وارد میشه تصویر تغییر کرده
اما وقتی کاربر از اکتیویتی محتوا دکمه بک رو میزنه و به لیست ویو برمیگرده تصویر عوض نمیشه و حتما باید از لیست ویو هم بیرون بره و در مراجعه بعدی تصویر جدید رو نمایش میده
من کد هام رو داخل لیست آداپتور قرار دادم :

کد پی‌اچ‌پی:
ImageView seen = (ImageViewrow.findViewById(R.id.see_itm);
            if (
Seen[position].equals("1")) {
                
seen.setImageResource(R.drawable.seen);
            }else {
                
seen.setImageResource(R.drawable.noseen);
            } 

باید چه کدی اضافه کنم که هنگام بک هم وضعیت رو بخونه و جدید کنه؟
پاسخ

اعمال تغییرات در اکتیویتی قبلی هنگام بازگشت (در برنامه نویسی اندروید)

#2
دوست عزیز شما دستورات بالا رو در متد Oncreate نوشتید...پس زمانی دوباره این دستورات اعمال میشود که اکتیوتی از بین بره و دوباره ساخته بشه(بخاطر همین هست که باید خارج شید و بازگردید در برنامه تا تغییرات اعمال بشه)...
ولی وقتی شما در اکتیویتی محتوا  میروید...اکتیویتی لیست ویو در حالت onpuse() میمونه و وقتی که دکمه بک گوشی میزنید دوباره از همان جا شروع به فعالیت میکنه(متد Oncreate()) صدا زده نمیشه دوباره...
روش های زیادی هست...میتونیددر اکتیوتی محتوا واسه دکمه بک گوشی متد OnBackPress رو فراخوانی کنید ..یعنی وقتی کاربر دکمه بک گوشی زد این متد شروع به کار کند..حالا کافیه یک بار دیگه با اینتنت در داخل onBackpress به اکتیویتی اول بازگردید.

کد پی‌اچ‌پی:
Intent back=new Intent(SecoundActivity.this,FirstActivity.class);
StartActivity(x); 

روش دوم اینه که دستوراتی که در بالا در اکتیویتی اول نوشتید رو از داخل متد OnCreate() پاک کنید و داخل متد OnResume() بنوسید..

کد پی‌اچ‌پی:
@Override
protected void onResume() {
    
// TODO Auto-generated method stub
    
super.onResume();
ImageView seen = (ImageViewrow.findViewById(R.id.see_itm);
            if (
Seen[position].equals("1")) {
                
seen.setImageResource(R.drawable.seen);
            }else {
                
seen.setImageResource(R.drawable.noseen);
            } 


یعنی همواره وقتی اکتیویتی با کاربر در ارتباط هست تغییرات اعمال شود
 
پاسخ
 سپاس شده توسط parniaznet ، admin ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان