如何设置“后退按钮”,关闭除Android中的主要活动以外的活动?

时间:2018-12-13 13:10:40

标签: android android-studio

首先,对不起我的英语。我是Android新手,正在开发应用程序。 我的应用有8个活动,它们通常通过单击和 像这样,activity1-> 2-> 3-> 4-> 5-> 6-> 7-> activity8。
照常, 当我按下后退按钮7次,它关闭了act8到act1的活动。如果我处于activty1,则后退按钮会关闭该应用程序。我想在那里发出alerdiaolog来提醒我,例如“这是您的最后活动!”。但是当我使用 public void onBackBacked()命令显示对话时,例如“您确定要退出吗?” ,这不仅阻止了应用程序关闭,还阻止了其他活动的关闭,例如,如果我处于第8个活动中而我无法返回第7个活动,则应用程序会显示警告对话框“您确定要退出吗?”

总结;
-如果我只想阻止除活动外仅关闭应用程序,我应该在 public void onBackPressed()上放置代码吗?
-我可以使用这样的代码吗,如果(myactivity是lastone或main活动){“一定要退出该应用程序吗?”}

再次抱歉,谢谢您。

3 个答案:

答案 0 :(得分:1)

这是您的答案,尝试以这种方式。 对于您的第一个Activity onBackPressed()方法,请编写以下代码。

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
           .setMessage("Are you sure you want to exit?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   NumberOne.super.onBackPressed();
               }
           })
           .setNegativeButton("No", null)
           .show();
}

对于其他活动,请使用以下代码。

    @Override
    public void onBackPressed() {
        finish();
    }

答案 1 :(得分:1)

您应在活动 2至8 中保持onBackPressed()的状态,并在活动1中保持onBackPressed()的状态,如下所示。

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
           .setMessage("Are you sure you want to exit?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   finish();
               }
           })
           .setNegativeButton("No", null)
           .show();
}

答案 2 :(得分:0)

如果您在每次统计新活动时都没有完成第一个活动,则此解决方案有效。 在上一个活动的onBackpress()中,写以下内容

a=0

tx=t1.xcor()
ty=t1.ycor()
comx=turtles[i].xcor()
comy=turtles[i].ycor()

if tx==comx and ty==comy:
    a=1