我在活动中使用了onKeyDown函数.....但是当后退按钮时 单击按钮它首先取消对话框并转到我们的 活动...我希望活动和对话框都关闭 在对话框中单击后退按钮或禁用后退按钮 框显示...
任何人都可以建议任何解决方案......
提前致谢,
更新
您好,感谢您的回答。
带有progressDialog
的{{1}}工作正常。
但在这里我想要不同的东西。 当进度对话框运行时,我将按BACK键,我想显示一个警告对话框,以便用户可以通知进度正在运行。
有没有解决方案?
请帮帮我。
提前致谢。
答案 0 :(得分:58)
您是否尝试将其setCancelable()
属性设置为false
像这样的东西
progressDialog.setCancelable(false);
答案 1 :(得分:2)
这可能会对你的情况有所帮助:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Show your Alert Box here
}
return false;
}
答案 2 :(得分:0)
我只想改进@MoJo回答
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
//Your handler
return false;
}
});
答案 3 :(得分:0)
个人更清洁的解决方案是在启动intent之前完成LoginActivity,而不是在新活动的bundle中设置Flags或覆盖任何方法。尝试下面的内容,其中Login是您的登录活动,Home是成功登录用户后的第一个活动。
finish();
Intent intent = new Intent(Login.this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
答案 4 :(得分:0)
“我希望活动和对话框都关闭”
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
finish();
return true;
}
});
“或在显示对话框时禁用后退按钮”这可以阻止从对话框返回。在动态创建时,添加:
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
return true;
}
});
返回true表示阻止此对话框关闭,单击后退无法关闭。我还建议添加:
dialog.setCanceledOnTouchOutside(false);
什么会阻止用户通过点击它来解除对话。