如果单击后退按钮,我想向用户显示一个对话框。
我使用这个创建onBackPressed
方法,如下所示:
@Override
public void onBackPressed() {
super.onBackPressed();
if (isNew || !isReport) {
if (!edtReportContent.getText().toString().isEmpty() && !edtReportContent.getText().toString().equals("")) {
Toast.makeText(activity, "گزارش شما به عنوان پیش نویس ذخیره شد!", Toast.LENGTH_LONG).show();
saveReport(1);
} else {
Toast.makeText(activity, "متن گزارش نمی تواند خالی باشد!", Toast.LENGTH_SHORT).show();
final Dialog dialog = new Dialog(activity);
dialog.setContentView(R.layout.dialog_remove_draft);
Button btnDelete = (Button) dialog.findViewById(R.id.btn_delete);
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
discardReport();
}
});
dialog.setCancelable(false);
dialog.show();
}
}
但是当我点击后退按钮时,我的对话框会显示几秒钟并自动消失!有什么问题?
感谢您的回答。
答案 0 :(得分:5)
评论或删除此行代码并尝试
super.onBackPressed();
答案 1 :(得分:0)
删除super.onBackPressed();
。您的代码现在看起来像这样:
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
return;
}
if(Close_Dialog==null) {
Close_Dialog = new AlertDialog.Builder(this)
.setCancelable(false)
.setMessage("Are you sure you want to close ?")
.setPositiveButton("close", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.super.onBackPressed();
overridePendingTransition(R.anim.right_in, R.anim.right_out);
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
})
.create();
}
if(Close_Dialog !=null)
{
if(!Close_Dialog.isShowing())
Close_Dialog.show();
else
Close_Dialog.dismiss();
}
}