برگشت از اکتیویتی با استفاده از دیالوگ

گزارش
سوال

لطفا علت گزارش خود را توضیح دهید.

گزارش لغو

سلام و خداقوت به همه دوستان
چطور میشه زمانی که توسط یه Intent به یه اکتیویتی میریم از برگشت دوباره به اکتیوتی قبلی جلوگیری کنیم؟
مثلا زمانی که در اکتیویتی جدید هستم و دکمه بک رو که میزنم دوباره برمیگرده به اکتیویتی قبلی…
از flag هم استفاده کردم ولی فایده ای نداشت…
ممنون از راهنماییتون

حل شده 0
اندروید - android 18 پاسخ 1159 بازدید 0

درباره نویسنده

عاشق برنامه نویسی و جویای موفقیت هستم. یک روز هم انرژیم رو از دست نمیدم و عاشق کم خوابیم و وقتم رو به بطالت نمیگذرونم... روی تک تک ساعات زندگیم برنامه دارم و دنبال رشد فکری، شخصیتی، علمی و... هستم. از کار کردن در زمینه کدنویسی و همچنین نتورک لذت میبرم... خواهان ارتباط با افراد مثبت اندیش و پرانرژیم...

پاسخ ها ( ۱۸ )

  1. محمد حسین جعفری پور
    0
    ۸, تیر , ۱۳۹۷ در ۱:۳۰ ق.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سلام و درود شما می توانید اکیتیویتی را finished کنید از متد this.finish به منظور بستن اکتیویتی قبلی بعد از stratACtivity ببندیدش .

    موفق باشید.

    بهترین پاسخ
    • ehsan.k
      0
      ۸, تیر , ۱۳۹۷ در ۷:۵۹ ق.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      بنده این کارو هم کرده بودم ولی زمانی که از اکتیویتی قبلی برمیگردم به اکتیویتی جدید و دکمه بک رو میزنم دوباره از اکتیویتی جدید برمیگرده به همون اکتیویتی جدید(نمیدونم درست منظورم رو رسوندم و متوجه شدید…)
      حتی برای حل این مسئله از متد onBackPressed هم برای اکتیویتی جدید استفاده کردم که با زدن دکمه بک دوباره برنگرده به همون اکتیویتی جدید…
      ولی بازم فایده ای نداشت…
      ممنون میشم راهنماییم کنین
      سپاس بی کران بابت راهنماییاتون

      • محمد حسین جعفری پور
        0
        ۹, تیر , ۱۳۹۷ در ۱۲:۴۱ ب.ظ

        لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

        گزارش لغو

        اصلا چیزی که شما میگید غیر ممکن است شما اگر از اکتیویتی A بخواید برید به اکتیویتی B باید در اکتیویتی A بعد از استارت اکتیویتی B اکتیویتی A را Finish کنید این ساده ترین حالت کار است.

  2. Pro_Developer
    1
    ۹, تیر , ۱۳۹۷ در ۱:۵۴ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    با سلام
    برای اینکار یک روش هست به نام back stack … شما با ورود به صفحه میتونی back stack رو خالی کنی و دیگه نتونه برگرده به قبل

    • ehsan.k
      0
      ۱۰, تیر , ۱۳۹۷ در ۱۰:۳۹ ق.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      سپاس از راهنماییتون جناب مهندس
      اگه امکانش هست در مورد back stack و این حالتی که برای اکتیویتی ها رخ میده یه توضیح مختصر بدین یا لینکی رو بعنوان مرجع بدین تا مطالعه کنم
      ممنون از شما

      • محمد حسین جعفری پور
        1
        ۱۱, تیر , ۱۳۹۷ در ۳:۰۲ ق.ظ

        لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

        گزارش لغو

        این بخش خیلی گسترده است در قالب یه پست منتشر می شود.

        • ehsan.k
          0
          ۱۱, تیر , ۱۳۹۷ در ۸:۰۸ ق.ظ

          لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

          گزارش لغو

          بسیار ممنون از لطفتون
          پس منتظر پست میمونیم جناب مهندس
          سپاس بی کران

  3. ehsan.k
    1
    ۹, تیر , ۱۳۹۷ در ۳:۳۴ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    بله
    دقیقا هم همین کارو کردم ولی زمانی که داخل اکتیویتی A هستم و دکمه بک رو میزنم انیمیشن پیشفرض اکتیویتی ران میشه و دوباره اکتیوتی A لانچ میشه…
    واقعا برای خودمم سواله…!!!!!!
    اگه امکانش ب.د راهنماییم کنین
    ضمنا بنده از اکتیویتی B توسط یه دیالوگ به اکتیویتی A میرم…

    • محمد حسین جعفری پور
      1
      ۱۰, تیر , ۱۳۹۷ در ۱۲:۲۶ ق.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      سلام و درود
      کد زیر را تست کنید مشکل حل میشه این کار back stack رو خالی می کنه.

      موفق باشید.

      • ehsan.k
        0
        ۱۶, تیر , ۱۳۹۷ در ۵:۳۰ ب.ظ

        لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

        گزارش لغو

        سلام
        ممنون از راهنماییتون عالی بود
        فقط یه نکته این که برای خروج از برنامه یه دیالوگ خروج قرار دادم…
        ولی زمانی که کاربر دکمه بک رو میزنه دیالوگ نمایش داده میشه ولی برنامه هم بلافاصله بسته میشه…
        باید در متد onBackPressed در کنار دستور نمایش دیالوگ چه دستوری رو بدم که اکتیویتی رو نبنده؟

        • محمد حسین جعفری پور
          1
          ۱۶, تیر , ۱۳۹۷ در ۶:۲۲ ب.ظ

          لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

          گزارش لغو

          سلام باید برای Dialog کلیک تعریف کنید.

          موفق باشید.

          • ehsan.k
            0
            ۱۶, تیر , ۱۳۹۷ در ۷:۲۰ ب.ظ

            لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

            گزارش لغو

            فک کنم اشتباه منظورمو رسوندم
            ببینید بنده برای دیالوگ کلید تعریف کردم و برنامه رو طوری نوشتم که زمانی که کاربر دکمه بک رو میزنه باید دیالوگ براش نمایش داده بشه و بعد از انتخاب کلید خروج دیالوگ، برنامه بسته بشه…
            ولی چون بصورت پیشفرض با زدن دکمه بک در هر اکتیویتی، اون اکتیویتی finish میشه، دقیقا تو این اکتیویتی هم با زدن دکمه بک دیالوگ نمایش داده میشه ولی بخاطر خاصیت دکنه بک، اکتیویتی finish میشه…..
            کد:
            @Override
            public void onBackPressed() {
            super.onBackPressed();
            if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
            drawerLayout.closeDrawer(Gravity.RIGHT);
            } else {
            dialog.show();
            }
            }
            باید داخل این متد چه دستوری بنویسم که اکتیویتی رو نبنده و بمونه تو اکتیویتی تا کاربر بتونه با انتخاب گزینه داخل دیالوگ خارج بشه…؟

          • محمد حسین جعفری پور
            1
            ۱۶, تیر , ۱۳۹۷ در ۱۱:۲۵ ب.ظ

            لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

            گزارش لغو

            این خط را حذف کنید.
            super.onBackPressed();

  4. ehsan.k
    0
    ۱۷, تیر , ۱۳۹۷ در ۸:۲۵ ق.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    بسیار ممنون از راهنماییتون
    فقط یه سوال اینکه میشه بدونم متد super در داخل هر تابع در واقع چه کاری انجام میده؟
    و اینکه چطور شد که با برداشتن این متد، مسئله بنده حل شد؟

    • محمد حسین جعفری پور
      0
      ۱۸, تیر , ۱۳۹۷ در ۱۲:۴۳ ب.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      سلام و درود
      super در واقع یک کلاس parent در جاوا یا همون اندروید است از طریق کلمه کلیدی super به یکسری کلا از قبل تعریف شده نیز می توان دسترسی داشت در واقع یکسری متد در این کلمه کلیدی super هست مثال زیر رو چک کنید یکی دیگر از کاربردهای super است.

      خروجی کد بالا
      Here goes:
      Hello
      موفق باشید

  5. ehsan.k
    0
    ۱۹, تیر , ۱۳۹۷ در ۹:۲۲ ق.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    ممنون از لطفتون

ارسال نظر