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