如何明确关闭警报对话框?

时间:2016-06-16 08:04:43

标签: android android-fragments android-alertdialog

在我的活动中,我正在加载一些8个片段,从第8个片段显示一些警告对话框。在该会话过期后,将它们重定向到第一个片段而没有用户交互。在那个时间警报对话框没有关闭哪个创建来自8个片段。

2 个答案:

答案 0 :(得分:0)

如果你使用这样的警告对话框:

 AlertDialog.Builder builder = new AlertDialog.Builder(Activity);

您需要保留从show方法返回的对话框实例,并从该实例调用dismiss。

 AlertDialog dialog = builder.show();

 //Use this anywhere to close
 dialog.dismiss();

答案 1 :(得分:0)

在第8个片段的onPause()中,你应该隐藏AlertDialog。

class XYZ extends Fragment{ 
    //Keep the reference to AlertDialog as a member variable in your Fragment 
    AlertDialog mDialog;
    //other member declarations ...

  @Override
    public void onPause() {
        // check if dialog is not null and is already showing 
        if(mDialog !=null && mDialog.isHowing())
            mDialog.hide();   
        super.onPause();
}

注意:如果viewpager从内存中删除了第8个片段,并且您在对话框中执行的某些操作引用了第8个片段,那么它将导致空指针异常。