برگشت از اکتیویتی با استفاده از دیالوگ
گزارشسوال
سلام و خداقوت به همه دوستان
چطور میشه زمانی که توسط یه Intent به یه اکتیویتی میریم از برگشت دوباره به اکتیوتی قبلی جلوگیری کنیم؟
مثلا زمانی که در اکتیویتی جدید هستم و دکمه بک رو که میزنم دوباره برمیگرده به اکتیویتی قبلی…
از flag هم استفاده کردم ولی فایده ای نداشت…
ممنون از راهنماییتون
حل شده
0
اندروید - android
3 سال
18 پاسخ
3085 بازدید
0
پاسخ ها ( ۱۸ )
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام و درود شما می توانید اکیتیویتی را finished کنید از متد this.finish به منظور بستن اکتیویتی قبلی بعد از stratACtivity ببندیدش .
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبنده این کارو هم کرده بودم ولی زمانی که از اکتیویتی قبلی برمیگردم به اکتیویتی جدید و دکمه بک رو میزنم دوباره از اکتیویتی جدید برمیگرده به همون اکتیویتی جدید(نمیدونم درست منظورم رو رسوندم و متوجه شدید…)
حتی برای حل این مسئله از متد onBackPressed هم برای اکتیویتی جدید استفاده کردم که با زدن دکمه بک دوباره برنگرده به همون اکتیویتی جدید…
ولی بازم فایده ای نداشت…
ممنون میشم راهنماییم کنین
سپاس بی کران بابت راهنماییاتون
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغواصلا چیزی که شما میگید غیر ممکن است شما اگر از اکتیویتی A بخواید برید به اکتیویتی B باید در اکتیویتی A بعد از استارت اکتیویتی B اکتیویتی A را Finish کنید این ساده ترین حالت کار است.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبا سلام
برای اینکار یک روش هست به نام back stack … شما با ورود به صفحه میتونی back stack رو خالی کنی و دیگه نتونه برگرده به قبل
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسپاس از راهنماییتون جناب مهندس
اگه امکانش هست در مورد back stack و این حالتی که برای اکتیویتی ها رخ میده یه توضیح مختصر بدین یا لینکی رو بعنوان مرجع بدین تا مطالعه کنم
ممنون از شما
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغواین بخش خیلی گسترده است در قالب یه پست منتشر می شود.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبسیار ممنون از لطفتون
پس منتظر پست میمونیم جناب مهندس
سپاس بی کران
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبله
دقیقا هم همین کارو کردم ولی زمانی که داخل اکتیویتی A هستم و دکمه بک رو میزنم انیمیشن پیشفرض اکتیویتی ران میشه و دوباره اکتیوتی A لانچ میشه…
واقعا برای خودمم سواله…!!!!!!
اگه امکانش ب.د راهنماییم کنین
ضمنا بنده از اکتیویتی B توسط یه دیالوگ به اکتیویتی A میرم…
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام و درود
کد زیر را تست کنید مشکل حل میشه این کار back stack رو خالی می کنه.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام
ممنون از راهنماییتون عالی بود
فقط یه نکته این که برای خروج از برنامه یه دیالوگ خروج قرار دادم…
ولی زمانی که کاربر دکمه بک رو میزنه دیالوگ نمایش داده میشه ولی برنامه هم بلافاصله بسته میشه…
باید در متد onBackPressed در کنار دستور نمایش دیالوگ چه دستوری رو بدم که اکتیویتی رو نبنده؟
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام باید برای Dialog کلیک تعریف کنید.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوفک کنم اشتباه منظورمو رسوندم
ببینید بنده برای دیالوگ کلید تعریف کردم و برنامه رو طوری نوشتم که زمانی که کاربر دکمه بک رو میزنه باید دیالوگ براش نمایش داده بشه و بعد از انتخاب کلید خروج دیالوگ، برنامه بسته بشه…
ولی چون بصورت پیشفرض با زدن دکمه بک در هر اکتیویتی، اون اکتیویتی finish میشه، دقیقا تو این اکتیویتی هم با زدن دکمه بک دیالوگ نمایش داده میشه ولی بخاطر خاصیت دکنه بک، اکتیویتی finish میشه…..
کد:
@Override
public void onBackPressed() {
super.onBackPressed();
if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
drawerLayout.closeDrawer(Gravity.RIGHT);
} else {
dialog.show();
}
}
باید داخل این متد چه دستوری بنویسم که اکتیویتی رو نبنده و بمونه تو اکتیویتی تا کاربر بتونه با انتخاب گزینه داخل دیالوگ خارج بشه…؟
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغواین خط را حذف کنید.
super.onBackPressed();
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبسیار ممنون از راهنماییتون
فقط یه سوال اینکه میشه بدونم متد super در داخل هر تابع در واقع چه کاری انجام میده؟
و اینکه چطور شد که با برداشتن این متد، مسئله بنده حل شد؟
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام و درود
super در واقع یک کلاس parent در جاوا یا همون اندروید است از طریق کلمه کلیدی super به یکسری کلا از قبل تعریف شده نیز می توان دسترسی داشت در واقع یکسری متد در این کلمه کلیدی super هست مثال زیر رو چک کنید یکی دیگر از کاربردهای super است.
خروجی کد بالا
Here goes:
Hello
موفق باشید
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبسیار ممنون از راهنماییاتون
اگه رفرنس خاصی در این رابطه هستف خوشحال میشم در اختیارم بذاریم.
سگاس بی کران
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوخواهش می کنم
در ادامه قرار می گیرد.
https://stackoverflow.com/questions/5141344/meaning-of-super-keyword
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوممنون از لطفتون