找到对 AppCompatDialogFragment 的引用

Find a reference to AppCompatDialogFragment

在我的 Andriod 应用程序中,我有一个从 AppCompatDialogFragment 扩展的对话框。我立即在我的应用程序的主要 Activity 的 onCreate:

中显示它
@Override
protected void onCreate(Bundle savedState)
  {
  super.onCreate(savedState);

  // ....

  if( savedState==null )
    {
    MyDialog diag = new MyDialog();
    diag.show(getSupportFragmentManager(), null);
    }
  }

稍后我想关闭此对话框 - 所以我需要找到它。我不能简单地记住在我的 Activity 中对它的引用,例如当我旋转 phone 重新创建对话框,我的引用将无效。

稍后如何在我的代码中获取对 MyDialog 的引用?

show() 的第二个参数是 tag

此标签允许您稍后使用 findFragmentByTag() 检索该片段。

因此,只需使用除 null

以外的任何其他值
diag.show(getSupportFragmentManager(), "dialog");

然后你可以检索片段:

MyDialog diag = (MyDialog) getSupportFragmentManager().findFragmentByTag("dialog");