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

Java 如何禁用特定活动的后退按钮,java,android,Java,Android,我正在开发一个Android应用程序,其中第一个屏幕是登录屏幕。成功登录后,主屏幕出现。但问题是,当我按下后退按钮时,它会再次进入登录屏幕。当我在主屏幕上时,我想禁用后退按钮,并显示一个警告框 你确定要退出吗 我搜索了很多例子,但没有找到任何完美的解决方案 我尝试过使用public void onBackPressed(){}方法,但不知道该实现什么。我的min SDK版本是15。只需将OnBackPressed()方法保留为空即可。对我来说是吗?只需将OnBackPressed()方法留空即可

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

你确定要退出吗

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

只需将
OnBackPressed()方法保留为空即可。对我来说是吗?

只需将
OnBackPressed()方法留空即可。是否为我执行此操作

覆盖
onBackPressed()
并删除行
super.onBackPressed()


知道当您按下back键时,它不会返回。

覆盖
onBackPressed()
并删除行
super.onBackPressed()

知道当你按下back键时它不会返回。

使用
onbackpressed()

我希望这将对您有所帮助。

使用
onbackpressed()


我希望这将对您有所帮助。

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

  • 调用主页活动后的finish()登录活动。所以你不需要忽视背压
  • 将noHistory=“true”放在Android登录屏幕的清单中,当用户进入主屏幕时,他们将无法再次使用“返回”按钮返回
  • 最后

    在主活动中重写onBackPressed()方法。但正如我所说的,若你们只是想阻止用户返回,你们不应该重写这个方法。他们应该能够按下后退按钮并退出应用程序

    public void onBackPressed(){
    }
    

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

  • 调用主页活动后的finish()登录活动。所以你不需要忽视背压
  • 将noHistory=“true”放在Android登录屏幕的清单中,当用户进入主屏幕时,他们将无法再次使用“返回”按钮返回
  • 最后

    在主活动中重写onBackPressed()方法。但正如我所说的,若你们只是想阻止用户返回,你们不应该重写这个方法。他们应该能够按下后退按钮并退出应用程序

    public void onBackPressed(){
    }
    

    您需要重写onBackPressed()并删除super.onBackPressed()行

    同时,如果您登录并导航到主屏幕,那么最好完成登录屏幕并导航到主屏幕。因此,用户不会再次看到登录屏幕。。 让我告诉您一个示例场景

    • 启动屏幕(完成此活动并转到登录)
    • 登录屏幕
    • 如果登录成功,则完成登录屏幕并导航到主屏幕。所以,若用户按下返回键,您可以要求发出警报,无论您是否 是否要退出应用程序
    • 如果用户再次启动应用程序,它将重复相同的过程

    您需要重写onBackPressed()并删除super.onBackPressed()行

    同时,如果您登录并导航到主屏幕,那么最好完成登录屏幕并导航到主屏幕。因此,用户不会再次看到登录屏幕。。 让我告诉您一个示例场景

    • 启动屏幕(完成此活动并转到登录)
    • 登录屏幕
    • 如果登录成功,则完成登录屏幕并导航到主屏幕。所以,若用户按下返回键,您可以要求发出警报,无论您是否 是否要退出应用程序
    • 如果用户再次启动应用程序,它将重复相同的过程

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

    @Override
    public void onBackPressed(){
    
    }
    

    将此方法留空,您将得到您想要的。

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

    @Override
    public void onBackPressed(){
    
    }
    
    @Override
    public void onBackPressed() {
    // do nothing.
    }
    
    将此方法留空,您将得到您想要的

    @Override
    public void onBackPressed() {
    // do nothing.
    }
    
    不要返回true。只需检查条件


    不要返回true。只需检查条件。

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


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


    您可以在
    oncreate()
    之后将空实现放在onBackPressed(){}user中,这是否回答了您的问题?您可以在
    oncreate()
    之后将空实现放在onBackPressed(){}user中,这是否回答了您的问题?然后请用左边的绿色复选框将此答案标记为已解决。然后请用左边的绿色复选框将此答案标记为已解决。@user3748363Welcome@user3748363欢迎光临
      @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;
    
        }