Я искал решение, но, похоже, это не обычная проблема.DialogFragment не отклоняется
Я хочу иметь неопределенный диалог, пока мое приложение подключается к серверу, затем очищает это диалоговое окно и отображает другое диалоговое окно, когда запрос завершается. Я использую пакет совместимости Fragment
. Проблема в том, что счетчик не удаляется перед отображением второго диалогового окна.
Вот мой код, который показывает диалоги, и должны удалить все существующие диалоги:
void displayDialog(int type, String message) {
Log.i(logTag, "displayDialog: " + type);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
Log.i(logTag, "removing previous dialog");
ft.remove(prev); //TODO maybe use ((DialogFragment)dialog).dismiss(); ?
}
ft.addToBackStack(null);
// Create and show the dialog.
DialogFragment newFragment = DialogHelperFragment.newInstance(type, message);
newFragment.show(ft, "dialog");
}
Вот код вызова, который я использую, чтобы устранить эту ошибку:
displayDialog(DialogHelperFragment.DIALOG_PROGRESS, null);
displayDialog(DialogHelperFragment.DIALOG_PURCHASE_SUCCESS, null);
Вот мой соответствующий выход LogCat:
06-25 13:53:35.497: I/tag(11008): displayDialog: 8
06-25 13:53:35.497: I/tag(11008): displayDialog: 7
06-25 13:53:35.897: I/tag Dialog Helper(11008): Creating Dialog: 8
06-25 13:53:35.907: I/tag Dialog Helper(11008): Creating Dialog: 7
проблема заключается в том, что
Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog");
возвращает null, потому что первое диалоговое окно не было создано или не привязано к моменту отображения отображенияDialog().
Любые советы были бы очень полезны.
Просто подумал, что стоит добавить ссылку на это, так как это похоже, но не то же самое: http://stackoverflow.com/ Вопросы/14738572/can not-get-dialogfragment-to-reject-programatically/18187157 # 18187157 – TacB0sS