مدیریت دکمه ی Back در اندروید

مدیریت دکمه ی Back در اندروید
در اندروید به صورت پیشفرض هنگامی که کاربر بر روی دکمه ی Back کلیک میکند برنامه به اکتیویتی قبلی خود بر میگردد، گاهی برنامه نویسان میخواهند این روال کلیشه ای را بشکنند و هنگامی که کاربر بر روی دکمه ی Back کلیک کرد به کاربر پیغامی نشان بدهند، مثلا یک Toast نمایش بدهند و به کاربر بگویند اگر قصد خروج از برنامه را دارید 2 بار روی دکمه ی Back کلیک کنید یا حتی از کاربر سوال بپرسند آیا واقعا میخواهید برنامه را ترک کنید ؟
سایت ترجمه رایت می
سفارش آنلاین ترجمه مقالات و متون تخصصی با خیال راحت
تور مشهد
تور مشهد، همه روزه از تمام شهرهای ایران.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
ازمون ایین نامه رانندگی
آزمون شبیه سازی شده آیین نامه رانندگی
عمان۷۷۷
مجله گردشگری عمان۷۷۷-تور عمان-هتل‌های عمان-جاهای دیدنی و جاذبه‌های گردشگری عمان
خرید فالوور اینستاگرام
با سرویس‌های ما زودتر از آنچه فکرش را کنید در اینستاگرام خودی نشان دهید!
شارژ کپسول آتش نشانی
شارژ انواع کپسول آتش نشانی با ضمانت و بیمه‌نامه آسیا + خدمات رایگان پس از شارژ
نمایندگی کانن
فروش انواع دوربین های کانن از نمایندگی رسمی دوربین های کانن
استودیو طراحی سلام گرافیک
استودیو طراحی گرافیک سلام گرافیک
قالب و افزونه وردپرس
بیش از 300 محصول تنها با پرداخت 39 هزارتومان اشتراک ویژه در دسترس شما است.
تبلت مناسب کودک
تبلت نارتب با مدیریت اینترنت برای کودک
محصولات سیمپل
محصولات سیمپل
فروشگاه تجهیز کرین
فروش لوازم و قطعات جرثقیل سقفی در فروشگاه تجهیز کرین
تور کیش از تهران
تور کیش از تهران و تمامی شهر ها همه روز توسط سفرآس24
دوره حضوری سئو
کامل ترین دوره سئو در کشور از آموزش طراحی سایت گرفته تا سئو،Ui/UX و حتی استخدام!
خودتان را اینجا معرفی کنید

برای این کار کافیست متد
onBackPressed()
را در اکتیویتی override کنیم، به همین منظور در درون اکتیویتی پس از بلاک onCreate متدی که در بالا معرفی کردیم را override میکنیم، یعنی مینویسیم :
@Override
    public void onBackPressed() {

        super.onBackPressed();
    }
بنابراین در این متد میتوانیم چیزهایی که نیاز داریم را بنویسیم، برای مثال زمانی که کاربر روی دکمه ی Back کلیک کرد یک Toast به کاربر نمایش داده میشود :
@Override
    public void onBackPressed() {

        super.onBackPressed();
    Toast.makeText(MainActivity.this, "back", Toast.LENGTH_SHORT).show();

    }
حالا اگر برنامه را اجرا کنید و در این اکتیویتی دکمه ی Back را بزنید مشاهده میکنید یک Toast نمایش داده میشود و سپس از اکتیویتی مورد نظر خارج میشوید، اگر تصمیم داشته باشید که پس از فشردن دکمه ی Back از اکتیویتی خارج نشوید، برای مثال یک alert دیالوگ نمایش بدهید لازم است خط
super.onBackPressed();
را از کد پاک کنید، با این کار با زدن دکمه ی Back فقط یک Toast نمایش داده میشود، میتوانید بجای Toast یک دیالوگ باز کنید و از کاربر بپرسید که واقعا قصد خارج شدن از برنامه ی شما را دارد یا خیر ؟
برای مثال یک دیالوگ به صورت زیر میسازیم :
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.widget.Toast;
import android.content.DialogInterface;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onBackPressed() {

        super.onBackPressed();
    Toast.makeText(MainActivity.this, "back", Toast.LENGTH_SHORT).show();
    //Display alert message when back button has been pressed
        backButtonHandler();
         return;
    }

public void backButtonHandler() {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(
            MainActivity.this);
    // Setting Dialog Title
    alertDialog.setTitle("Leave application?");
    // Setting Dialog Message
    alertDialog.setMessage("Are you sure you want to leave the application?");
    // Setting Icon to Dialog
    alertDialog.setIcon(R.drawable.ic_launcher);
    // Setting Positive "Yes" Button
    alertDialog.setPositiveButton("YES",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            });
    // Setting Negative "NO" Button
    alertDialog.setNegativeButton("NO",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // Write your code here to invoke NO event
                    dialog.cancel();
                }
            });
    // Showing Alert Message
    alertDialog.show();
}
}

نتیجه گیری

مدیریت دکمه ی Back ضمن ساده بودن عملکرد و کدنویسی، میتواند تصمیم گیری را برای کاربرانتان راحت تر کند یا حتی میتوانید به کاربرانتان مسیر خروج از برنامه را نشان دهید.

محمد یه دانشجوی فناوری اطلاعات هست که از سال 92 فعالیتش رو شروع کرد، در حال حاضر در زمینه ی برنامه نویسی تحت وب و اندروید و شبکه های ارتباطی سیسکو فعالیت میکنه .

نظرات و سوالات کاربران

ارسال پاسخ ابوالفضل اکبرزاده
ابوالفضل اکبرزاده
یکشنبه ۱۳ مرداد ۱۳۹۸ ۰۹:۲۸
سلام
حاجی اشتباه کردی کد Toast رو بعد از super رویداد OnBackPressed آوردی
ارسال پاسخ mostafadaneshvar
mostafadaneshvar
سه شنبه ۲۲ فروردین ۱۳۹۶ ۱۱:۳۴
در پاسخ به دیدگاه mehmet ارسال شده در یکشنبه ۱۳ تیر ۱۳۹۵ ۰۰:۳۲
دقیقا همین پروژه رو نوشتم اما کار نمیکنه!!!!
اصلا alert dialog نمیاره!!!
Override نکن
ارسال پاسخ mehmet
mehmet
یکشنبه ۱۳ تیر ۱۳۹۵ ۰۰:۳۲
دقیقا همین پروژه رو نوشتم اما کار نمیکنه!!!!
اصلا alert dialog نمیاره!!!