Найти ссылку на AppCompatDialogFragment - PullRequest
0 голосов
/ 18 февраля 2020

В моем приложении Andriod у меня есть расширенный диалог из AppCompatDialogFragment. Я сразу же показываю его в onCreate основной Деятельности моего приложения:

@Override
protected void onCreate(Bundle savedState)
  {
  super.onCreate(savedState);

  // ....

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

, позже я хочу закрыть это диалоговое окно, поэтому мне нужно его найти. Я не могу просто вспомнить ссылку на нее в своей Активности, например, когда я, например, поворачиваю телефон, диалоговое окно воссоздается, и моя ссылка становится недействительной.

Как мне позже получить ссылку на MyDialog в моем коде?

1 Ответ

2 голосов
/ 18 февраля 2020

Второй параметр show () - это tag.

. Этот тег позволяет использовать findFragmentByTag() позже для извлечения этого фрагмента. .

Поэтому просто используйте любое другое значение, кроме null

diag.show(getSupportFragmentManager(), "dialog");

И затем вы можете получить фрагмент:

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