按下Back时,Android Alert对话框消失了吗?

时间:2018-07-25 05:37:14

标签: android kotlin alertdialog

当我单击系统后退按钮时,我的警报对话框关闭,我不想关闭警报,我的代码在这里:-

fun shoWResultPopUp() {
    if (!isFinishing()) {
        val mBuilder = AlertDialog.Builder(this@ExamActivity)
        val mView = layoutInflater.inflate(R.layout.show_result_popup, null)
        val mResult = mView.findViewById(R.id.resultBtn) as Button
        mBuilder.setView(mView)
        val dialog = mBuilder.create()
        dialog.setCanceledOnTouchOutside(false);
        dialog.show()

        mResult.setOnClickListener {
            val intent = Intent(this, ResultActivity::class.java)
            startActivity(intent)
        }
    }
}

override fun onBackPressed() {
    return
}

2 个答案:

答案 0 :(得分:1)

您需要设置:

dialog.setCancelable(false)

根据该方法的Android文档:

  

设置此对话框是否可以使用         {@link KeyEvent#KEYCODE_BACK BACK}键。

这正是您想要的情况。

注意:

dialog.setCanceledOnTouchOutside用于防止/允许在弹出窗口(而不是后退按钮)外部触摸时弹出弹出窗口。文件:

  

设置当在窗口的外部触摸时是否取消此对话框         界限。如果设置为true,则对话框设置为可取消         已经设置。

答案 1 :(得分:0)

您可以检查此链接 CollectionChanged

dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
         MyActivity.this.finish();
    }
});