如何禁用特定活动的后退按钮

时间:2014-06-23 06:30:08

标签: java android

我正在开发一个Android应用,其中第一个屏幕是记录屏幕。登录成功后出现主屏幕。但问题是,当我按下“返回”按钮时,它会再次进入登录屏幕。所以当我在主屏幕时,我想禁用后退按钮,并显示一个警告框询问

  你确定要退出

吗?

我搜索了很多例子,但没有找到任何完美的解决方案 我尝试过使用public void onBackPressed() {} 方法但不知道要实施什么。 和 我的最低SDK版本是15

任何人都可以帮助我 非常感谢。

9 个答案:

答案 0 :(得分:2)

如果您的实际愿望是阻止用户返回登录活动,您也可以使用其他选项:

    致电家庭活动后,
  1. 完成()登录活动。所以你不需要忽视背压。
  2. 把noHistory =" true"在Android Manifest中用于登录屏幕,当用户进入主屏幕时,他们再也无法使用后退按钮返回。
  3. 和最后

    覆盖家庭活动中的onBackPressed()方法。但正如我所说,如果你只想阻止用户返回,你不应该覆盖这种方法。他们应该能够按下后退按钮并退出应用程序。

    public void onBackPressed(){
    }
    

答案 1 :(得分:2)

在您的活动中,只需覆盖onBackPressed()

即可
  @Override
    public void onBackPressed() {
      AlertDialog diaBox = AskOption();
      diaBox.show();
    }

 private AlertDialog AskOption()
 {
    AlertDialog myQuittingDialogBox =new AlertDialog.Builder(this) 
        .setTitle("Exit") 
        .setMessage("Are you sure you want to exit?") 
        .setIcon(R.drawable.delete)
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) { 
            finish();
            }   
        })
        .setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        })
        .create();
        return myQuittingDialogBox;

    }

答案 2 :(得分:1)

OnBackPressed()方法留空。对我来说

答案 3 :(得分:0)

覆盖onBackPressed()并删除第super.onBackPressed();

@Override
public void onBackPressed() {

}

知道何时按下它不会再回去。

答案 4 :(得分:0)

使用onbackpressed()

@Override
public void onBackPressed(){
//super.onBackPressed();
}

我希望这会对你有帮助..

答案 5 :(得分:0)

你需要覆盖onBackPressed()并删除super.onBackPressed()行

@Override
    public void onBackPressed() {
        super.onBackPressed(); //  remove this line
    }

同时,如果您登录并导航到主屏幕,最佳做法是完成登录屏幕并导航到主屏幕。因此用户不会再次看到登录屏幕.. 我来告诉你一个示例场景

  • 启动画面(完成此活动并转到登录)
  • 登录屏幕
  • 如果登录成功,则完成登录屏幕并导航至主屏幕。因此,如果用户按下,您可以询问是否有警报 想要从app退出。
  • 如果用户再次启动应用,则会重复相同的过程。

答案 6 :(得分:0)

当您从登录页面导航到主页时,将OnBackPressed()保留为空,并执行完成()登录活动

答案 7 :(得分:0)

非常简单,只需覆盖背压并删除超级调用,如:

@Override
public void onBackPressed(){

}

将此方法留空,您将获得所需内容。

答案 8 :(得分:0)

@Override
public void onBackPressed() {
// do nothing.
}

不要返回true.Just检查条件。