我试图阻止在 Android 中按后退按钮时关闭 AlertDialog 框。我遵循了两种流行的方法在这个线程中 https://stackoverflow.com/questions/4779954/disable-back-button-in-android,并且使用 System.out.println 我可以看到在这两种情况下代码都会执行。不过,后退按钮still关闭对话框。
我可能做错了什么?最终,我试图阻止后退按钮关闭对话框 - 这是第一次运行应用程序时显示的免责声明,我不希望用户有任何选择,只能按“接受”按钮命令应用程序继续。
只需使用setCancelable() http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setCancelable%28boolean%29特征:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
这可以防止后退按钮关闭对话框,但如果您选择使用“否定”按钮,则它会保持不变。
虽然任何不想接受您的服务条款的用户都可以按主页按钮,但根据 Squonk 的评论,这里还有两种方法可以防止他们“退出”用户协议。一个是简单的“拒绝”按钮,另一个覆盖对话框中的后退按钮:
builder.setNegativeButton("Refuse", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
finish();
return false;
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)