перехват DialogFragment отклонить внутри активности

у меня есть занятие

public class ShowFileActivity extends FragmentActivity

и когда происходит какое-то событие, этот класс вызывает DialogFragment

public class ConfirmDialog extends DialogFragment

это простое диалоговое окно подтверждения (с кнопками «отклонить» и «ок»). Если пользователь нажимает кнопку отклонения, я звоню

dismiss()

и вернитесь к ShowFileActivity. В противном случае, если пользователь нажмет «ОК», после выполнения некоторых операций после закрытия вызова в диалоговом окне я вернусь к родительской активности ShowFileActivity. Есть способ сделать это? Запускает ли DialogFragment какое-либо событие в своем родительском представлении?


person giozh    schedule 26.03.2013    source источник


Ответы (1)


Что вы можете сделать, так это вызвать метод содержащей активности внутри фрагмента. Как и в случае с любым другим фрагментом, вы можете вызвать getActivity(), который возвращает содержащую его активность.

@Override
public void onDismiss(DialogInterface dialog) {
    ShowFileActivity parent = (ShowFileActivity) getActivity();
    parent.doWhateverYouWantWhenDialogDismissed();
}

Другим (более причудливым) подходом может быть использование шины событий, такой как otto или зеленый робот.

person fedepaol    schedule 26.03.2013