找到对 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");
在我的 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");