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

سایت ترجمه رایت می
سفارش آنلاین ترجمه مقالات و متون تخصصی با خیال راحت
سفارش آنلاین ترجمه مقالات و متون تخصصی با خیال راحت
تور مشهد
تور مشهد، همه روزه از تمام شهرهای ایران.
تور مشهد، همه روزه از تمام شهرهای ایران.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
افتتاح حساب در ترکیه
افتتاح حساب بین المللی سوییفت دار در ترکیه با پاسپورت ایرانی
افتتاح حساب بین المللی سوییفت دار در ترکیه با پاسپورت ایرانی
مرکز مشاوره
بهترین مرکز مشاوره روانشناسی در تهران [روان آرام]
بهترین مرکز مشاوره روانشناسی در تهران [روان آرام]
حضور و غیاب افق فراویژن
دستگاه حضور و غیاب شرکت افق فراویژن
دستگاه حضور و غیاب شرکت افق فراویژن
تصفیه آب پاکاب گستر
خرید دستگاه تصفیه آب خانگی و نیمه صنعتی با بهترین قیمت
خرید دستگاه تصفیه آب خانگی و نیمه صنعتی با بهترین قیمت
نمایندگی کانن
نمایندگی کانن در ایران
نمایندگی کانن در ایران
آموزش سئو وبین سئو
آموزش سئو وبین سئو یکی بهترین سایت های یادگیری سئو
آموزش سئو وبین سئو یکی بهترین سایت های یادگیری سئو
بانک کتاب
به روزترین فروشگاه خرید کتاب های کمک درسی
به روزترین فروشگاه خرید کتاب های کمک درسی
خرید ملک در ترکیه
خرید خانه در ترکیه ارزان و خرید ملک در استانبول آژانس املاک ایرانی در استانبول
خرید خانه در ترکیه ارزان و خرید ملک در استانبول آژانس املاک ایرانی در استانبول
شرکت طراحی سلام گرافیک
شرکت طراحی گرافیک سلام گرافیک - ارائه انواع خدمات طراحی گرافیک
خودتان را اینجا معرفی کنید
شرکت طراحی گرافیک سلام گرافیک - ارائه انواع خدمات طراحی گرافیک
برای این کار کافیست متد
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();
}
}
نظرات و سوالات کاربران
بعضی از نظراتی که خوندم مثل اینکه دوستان برای اجرای این کد مشکل دارن ، چند تا نکته میگم اگر رعایت کنید مشکلتون حل میشه!
نکته اول کد بیرون از متد onCreate (اگر راجب متدها و متد onCreate چیزی نمیدونید اول اینو سرچ کنید و یادبگیرید ) باید نوشته شه!
نکته دوم باید کلاس رو ایمپورت کنید برای مثال وقتی که روی AlertDialog خطا میده و قرمز رنگ هست ، دکمه Alt به علاوه Enter رو بزنید و گزینه import class رو انتخاب کنید! (اگر راجب ایمپورت کردن کلاس هم چیزی نمیدونید اول اینو سرچ کنید)
نکته سوم باید ;()super.onBackPressed از اول کدها حذف بشه! این تیکه کد یعنی خروج و بقیه دستورات اجرا نمیشن ، ما میخواهیم یک دیالوگ نمایش بدیم و دکمه Yes و No داشته باشیم!
من با همین کدی که تو این صفحه مشاده میکنید و نکاتی که خدمتتون گفتم انجام دادم و نتیجه گرفتم امیدوارم شما هم مشکلتون حل شه
#مستر_کد
حاجی اشتباه کردی کد Toast رو بعد از super رویداد OnBackPressed آوردی
اصلا alert dialog نمیاره!!!