Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
#1

Переопределить onDismiss у DialogFragment - Android

22.01.2016, 11:42. Просмотров 176. Ответов 2
Метки нет (Все метки)

Имеется класс, наследованный от DialogFragment.
Хочется переопределить onDismiss у DialogFragment так, чтобы можно было ловить нажатия кнопок диалога
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class YesNoDialog extends android.app.DialogFragment implements OnClickListener {
 
 
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        form = getActivity().getLayoutInflater().inflate(R.layout.yes_no, null);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
 
        return builder.setTitle("").setView(form)
                .setPositiveButton(android.R.string.ok, this)
                .setNegativeButton(android.R.string.cancel, null).create();
    }
 
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
 
    }
 
    public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
        this.onDismissListener = onDismissListener;
    }
Далее вызываю этот диалог из главной активити:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
YesNoDialog dialog_yesno = new YesNoDialog();
Bundle args = new Bundle();
args.putString("question", "Закрыть карту?");
dialog_yesno.setArguments(args);
 
//тут подчеркивает красным setOnDismissListener.
dialog_yesno.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
    //тут нужно перехватывать событие закрытия диалога
        }
    });
 
dialog_yesno.show(getFragmentManager(), "");
Но событие onDismiss(DialogInterface dialog) не перехватывается в основной активити.
Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 11:42     Переопределить onDismiss у DialogFragment
Посмотрите здесь:

Получение данных из DialogFragment Android
Android Изменить стиль DialogFragment
Android ListView with buttons in DialogFragment skiped frames
DialogFragment в Fragment Android
Android Данные из DialogFragment в Activity
Почему вызывается onDismiss Android
Android Запрет пересоздания DialogFragment
Android FragmentActivity -> DialogFragment (утечка памяти)
Android Разные стили DialogFragment
Особенности DialogFragment Android
Android DialogFragment и создание своего диалога
Перемещение DialogFragment Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
22.01.2016, 13:33     Переопределить onDismiss у DialogFragment #2
Slon747, перемудрили вы:
Java
1
2
3
4
5
6
7
YesNoDialog dialog_yesno = new YesNoDialog() {          
    @Override
    public void onDismiss(DialogInterface dialog) {
        Log.d("", "onDismiss");
    }
};
dialog_yesno.show(getFragmentManager(), "");
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
22.01.2016, 14:12  [ТС]     Переопределить onDismiss у DialogFragment #3
Спасибо.
А не подскажете ли, как узнать, какая из кнопок нажата?
Yandex
Объявления
22.01.2016, 14:12     Переопределить onDismiss у DialogFragment
Ответ Создать тему
Опции темы

Текущее время: 17:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru