Есть ли способ обнаружить, когда DialogFragment уволен, чтобы я мог обновить его родительский фрагмент?Обновить фрагмент при отклонении диалоговогофрагмента
ответ
Переопределить onDismiss() диалогового окна DialogFragment или при создании базового диалога установить слушателя с помощью setOnDimissListener().
Один из способов справиться с этим, чтобы встроить DialogFragment в пределах деятельности и отображать деятельность как диалог, есть подсказка в следующей ссылке, которая объясняет, как:
http://developer.android.com/guide/topics/ui/dialogs.html
Вы можете использовать это для обновления базового фрагмента, потому что, когда диалог (который является активностью) завершен, onResume() будет вызываться в базовом фрагменте. Добавьте код, чтобы обновить состояние фрагмента в методе onResume(), и это все, что есть.
Я думаю, что это лучший подход, но как насчет API 8+? Это было добавлено в API 11 – Iree
Я просто решил это в своем проекте. У меня есть активность с ListFragment. В этом фрагменте списка, когда нажимается конкретный элемент, я показываю DatePickerFragment (пользовательский диалог диалога, который отображает DatePickerDialog). Когда выбрана дата, я хочу, чтобы ListFragment обновлялся.
Для достижения этой цели в деятельности, на котором размещена ListFragment (и это также принимает DatePickerFragment, как на самом деле) я реализовал метод, который просто заменяет ListFragment с новым экземпляром, как так:
public void criteriaChanged()
{
getFragmentManager().beginTransaction()
.replace(R.id.container, new FilterFragment())
.commit();
}
Я называю этот метод из DatePickerFragment, из onDateSet():
FilterActivity fa = (FilterActivity) getActivity();
fa.criteriaChanged();
Это делает трюк для меня.
Вы можете добавить слушатель и переопределить onDismiss вашего диалога фрагмента:
public class DismissDialog extends DialogFragment {
private DialogInterface.OnDismissListener onDismissListener;
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (onDismissListener != null) {
onDismissListener.onDismiss(dialog);
}
}
}
Затем на родителях, вы установили слушатель:
DismissDialog d = new DismissDialog();
d.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
d.show(getSupportFragmentManager(), "sometag");
Это правильный ответ – FireZenk
Я попытался @Gazer ответа, это не работает для меня, я использую разный класс фрагментов
import android.app.Fragment;
Но я получил эту работу
Создание класса интерфейса
public interface MyDialogListener { void OnCloseDialog(Object obj); //you can put any object here }
Реализовать класс интерфейса в Материнской Фрагмент
public class ActionBarFragment extends Fragment implements MyDialogListener{ @Override public void OnCloseDialog(Object obj) { //Do you refresh }
, а затем добавить слушателя внутри DialogFragment
public class SpecialDialogFragment extends DialogFragment { MyDialogListener mListener; public SpecialDialogFragment(MyDialogListener listener) { this.mListener = listener; } @Override public void onStop() { super.onStop(); if(mListener!=null) mListener.OnCloseDialog(null); }
- 1. Android - обновить «родительский» фрагмент при отклонении DialogFragment
- 2. Обновить фрагмент при завершении операции
- 3. EXEC_BAD_ACCESS при отклонении ModalViewController
- 4. Сбой при отклонении uiimagepicker
- 5. Обновление данных при отклонении Modal
- 6. Обновить фрагмент
- 7. Метод, вызванный при отклонении UIViewController?
- 8. Ошибка приложения при отклонении ProgressDialog
- 9. Сбой при интерактивном отклонении модального
- 10. Черное мерцание при отклонении PopOverViewController
- 11. Ошибка при отклонении диспетчера просмотров
- 12. Redbar Замечено при отклонении UIImagePickerController
- 13. Обновить фрагмент в андроиде?
- 14. Обновить фрагмент предпочтения при изменении списка предпочтений
- 15. Обновить фрагмент при удалении элементов ListView
- 16. обновить фрагмент при перезагрузке или после поворота
- 17. Обновить фрагмент при увольнении фрагмента диалога
- 18. Обновить фрагмент при изменении настроек пользователя
- 19. как обновить фрагмент при переустановке вкладки, MaterialTabHost
- 20. Ошибка при представлении AlertView при отклонении MFMessageController
- 21. EXC_BAD_ACCESS при отклонении modalViewController при прокрутке tableview
- 22. Обновить или обновить фрагмент списка при выборе или выборе вкладки?
- 23. Android: обновить/обновить фрагмент из другого действия при нажатии кнопки
- 24. Как обновить фрагмент FragmentPagerAdapter?
- 25. Как обновить фрагмент onTabReselected?
- 26. Обновить фрагмент в FragmentActivity
- 27. Обновить фрагмент в ViewPager
- 28. Обновить фрагмент из адаптера
- 29. Android ViewPager Обновить фрагмент
- 30. Как обновить фрагмент ProgressDialog
Это сообщает 'DialogFragment', что он был уволен, но не является его родительским фрагментом, что и задал вопрос. – howettl
Родитель может использовать эти методы для получения обратного вызова и ответа при его увольнении. См. Этот ответ для использования: http: // stackoverflow.com/a/29518363/445348 – cottonBallPaws