در این جلسه می خواهیم با دکمه بازگشت در برنامه نویسی اندروید صحبت کنیم،در برخی مواقع نیاز پیدا میکنیم تا وقتی که کاربر بروی دکمه بک کلیک می کنه یک کار خاصی رو انجام بگیره مثلا نمایش یک هشدار. در این جلسه باهم با عملکرد دکمه بازگشت در یک برنامه اندرویدی بیشتر اشنا می شیم.
برای شروع کار یک پروژه جدید ایجاد می کنیم به نام BackButton،
کد های مربوط به xml لایه رو باهم دیگه میبینیم
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="21dp"
android:fontFamily="@string/app_name"
android:text="نحوه کار با دکمه بازگشت" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginLeft="36dp"
android:layout_marginTop="77dp"
android:fontFamily="@string/app_name"
android:text="UnitAzad.Ir" />
</RelativeLayout>
و میریم سراغ فایل MainActivity.java تا کدهای جاوای برنامه رو بنویسیم.کار که قراره انجام بدیم اینکه :یک متد onBackPressed به برنامه اضافه کنیم تا بتونیم رویداد های رو که میخواهم در هنگام کلیک بروی دکمه بک انجام بگیره رو بهش اضافه کنیم.در قدم اول با دستور backButtonHandler دکمه بک رو اماده میکنیم تا وقتی روش کلیک شد عملیات خاصی رو انجام بده،در مرحله دوم یک Alertdialog بهش اضافه می کنیم تا هشداری به کاربر بده جهت ماندن و یا خارج شدن از برنامه(در اموزش های قبلی با ایجاد الرت دیالوگ اشنا شدیم).در زیر میتونید کدهای کامل بخش MainActivity رو مشاهده کنید.
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onBackPressed() { //نمایش الرت دیالئگ هنگام کلیک بروی دکمه بک موبایل backButtonHandler(); return; } public void backButtonHandler() { AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); // ایجاد عنوان برای دیالوگ alertDialog.setTitle("خروج از برنامه"); // ایجاد یک پیام جهت نمایش به کاربر alertDialog.setMessage("آیا مایل به خروج از برنامه هستید؟"); // ایجاد یک دکمه با عملکرد مثبت برای نمایش بله و خروج از برنامه alertDialog.setPositiveButton("بلی", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); // ایجاد یک دکمه با عملکرد منفی برای نمایش خیر و ماندن در برنامه alertDialog.setNegativeButton("خیر", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); // نماایش الرت دیالوگ alertDialog.show(); } }