我遇到了问题
我有一个不可取消的自定义对话框 这意味着这个自定义对话框只能在自定义对话框中按下按钮时关闭,所以它不会在背压上取消或点击外面
我尝试了setCancelable(false)
然后它在我的活动中有效,我有一个onBackPressed,当我点击后退按钮时,我的不可取消对话框显示onBackPressed不会触发,因为我认为它们冲突
是他们解决这个问题的方法吗?
编辑:目的是我希望用户单击按钮确定,或跳过自定义对话框,这意味着在继续下一个活动之前需要此对话框
也在onBackPressed中,因为每当用户按下它时我都会使用片段,它会更改为上一个片段
抱歉没有解释我的代码就是这个
对话框
dialog_welcome_navigation = DialogUtils.showCustomDialog(context, R.layout.dialog_welcome_navigation);
dialog_welcome_navigation.setCancelable(false); // disable closing dialog with back pressed
dialog_welcome_navigation.setCanceledOnTouchOutside(true);
和onBackPressed
@Override
public void onBackPressed(){
Log.d("TAG", "--back--");
}
答案 0 :(得分:0)
经过搜索,我找到了一个解决方案,感谢这个SO答案
https://stackoverflow.com/a/25251122/3481654
我在对话框
上添加了一个setOnKeyListenerdialog_welcome_navigation.setOnKeyListener(dialogWelcomeNavigationOnKey);
private DialogInterface.OnKeyListener dialogWelcomeNavigationOnKey = new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == android.view.KeyEvent.KEYCODE_BACK) {
dialog_welcome_navigation.dismiss();
// move other fragment
return true;
}
return false;
}
};