【问题标题】:Application should give a prompt on pressing back button [closed]应用程序应在按下返回按钮时提示 [关闭]
【发布时间】:2012-12-18 16:57:01
【问题描述】:

我正在开发一个安卓应用程序。我希望当我在我的应用程序中按下返回按钮时,如果我真的想退出,它应该给我一个提示(一种警报对话框)。 我不知道在哪里放置这个警报对话框以及在“是”按钮中写什么,用户想要退出应用程序。请帮帮我。

【问题讨论】:

  • 这个问题被问了很多123

标签: android


【解决方案1】:

您可以覆盖OnBackPressed() 函数。

  @Override
public void onBackPressed()
{
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Exit");
    builder.setMessage("Are You Sure?");

    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    finish();
            }
        });

    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}

【讨论】:

  • 虽然这个答案似乎一切都很好,但不建议使用 System.exit(0);在安卓中。
  • 你的评论我把它改成了finish()
  • 干杯,为我完成了这项工作:-D
【解决方案2】:
@Override
public void onBackPressed() {

AlertDialog.Builder alertDialog = new AlertDialog.Builder(
        AppDemoActivity.this);

alertDialog.setPositiveButton("Yes", new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        finish();
    }
});

alertDialog.setNegativeButton("No", null);

alertDialog.setMessage("Do you want to exit?");
alertDialog.setTitle("AppTitle");
alertDialog.show();
}

使用它在 Back Pressed 时显示警报

【讨论】:

    【解决方案3】:

    这是覆盖后退按钮的另一种方式:

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)  {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_LONG).show();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    

    谢谢。

    【讨论】:

      【解决方案4】:

      您可以覆盖onBackPressed 以显示警报,并在yes 按钮中finish 活动..

      public void onBackPressed() {
          //show alert here
      }
      

      【讨论】:

        【解决方案5】:
        @Override
            private void onBackPressed() {
        
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
        alertDialogBuilder.setTitle("Do you really want to exit?");
        alertDialogBuilder
                .setMessage("Click yes to exit!")
                .setCancelable(false)
                .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, close
                        // current activity
                        ThisActivity.this.finish();
                    }
                  })
                .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, just close
                        // the dialog box and do nothing
                        dialog.cancel();
                    }
                });             
                AlertDialog alertDialog = alertDialogBuilder.create(); 
                alertDialog.show();
          }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-13
          • 2011-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-31
          相关资源
          最近更新 更多