Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Модальное окно - Программирование Android

20.01.2016, 12:11. Просмотров 704. Ответов 13
Метки нет (Все метки)

Скажите, неужели невозможно добиться того, чтобы при запуске диалогового окна (или похожего на диалоговое), далее код не выполнялся, пока это окно не будет закрыто?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2016, 12:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модальное окно (Программирование Android):

Нужно закрыть модальное окно и сделать активным вызвавшее его окно - Delphi
Мне нада средствами Win API закрыть модальное окно и сделать активным вызвавшее его окно. Кто знает как это сделать?

Создать модальное окно (дочернее окно) как в одноклассниках - C# ASP.NET
Здраствуйте всем, Нужна помощь. Я хочу создать модальное окно (дочерное окно) в ASP.NET на примере как в одноклассниках. В...

Модальное окно, сделать загрузку в окно по ссылке - jQuery
Привет всем нашел в интернете скрипт модального окна. Очень он мне подходит но есть одно но я хочу использовать несколько модальных окон...

Как создать окно в окне (модальное окно)? - jQuery
Подскажите новичку, как создать на сайте в родительском окне небольшое окошко поверх него для ввода некоторой информации.

MessageBox: Как сделать так, чтобы если окно модальное, при клике на родительское окно MessageBox мигал? - C++ WinAPI
Здравия всем! Никак не найду нужный MB_*, как можно сделать так, чтобы если сделать MessageBox модальным, при клике по родительскому...

Модальное окно - Visual C++
Когда с из одного окна вызываешь другое диалоговое окно (типа dlg.DoModal()), во втором появляются автоматически кнопочки OK и CANSEL. Они...

13
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 856
20.01.2016, 12:13 #2
Цитата Сообщение от Slon747 Посмотреть сообщение
Скажите, неужели невозможно добиться того, чтобы при запуске диалогового окна (или похожего на диалоговое), далее код не выполнялся, пока это окно не будет закрыто?
как то давно тоже нужна была такая фича, но поиск выдал только какие то жесткие костыли) стандартными средствами вроде никак.
в общем отказался от такой задумки))
0
Pablito
20.01.2016, 12:25
  #3

Не по теме:

код надо выстроить так что бы вызывалось диалоговое окно, а на dismiss повесить слушатель, в котором будет вызываться нужный метод (это ведь ООП)

0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 440
20.01.2016, 12:34  [ТС] #4
Цитата Сообщение от Паблито Посмотреть сообщение
код надо выстроить так что бы вызывалось диалоговое окно, а на dismiss повесить слушатель, в котором будет вызываться нужный метод (это ведь ООП)
Не понял. Пример можно?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
20.01.2016, 12:44 #5
слишком абстрактный вопрос
0
Kadagor
12 / 12 / 4
Регистрация: 17.09.2015
Сообщений: 48
20.01.2016, 18:41 #6
Можно установить Cancelable в false и вызывать нужную функцию по нажатию кнопок
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Окно")
    .setMessage("Текст")
    .setCancelable(false)
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { // Кнопка ОК
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //указываем функцию
        }
    })
    .setNegativeButton(R.string.cansel, new DialogInterface.OnClickListener() { 
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //указываем функцию
        }
    });
AlertDialog dilog = builder.create();
Или так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Окно")
    .setMessage("Текст")
    .setCancelable(true)
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { // Кнопка ОК
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //указываем функцию
        }
    })
    .setNegativeButton(R.string.cansel, new DialogInterface.OnClickListener() { 
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //указываем функцию
        }
    })
    .setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialog) {
            //указываем функцию
        }
    });
AlertDialog dilog = builder.create();
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 440
21.01.2016, 09:03  [ТС] #7
Вопрос то был в том, чтобы после строки
Java
1
my_fragment.show()
не выполнялся остальной код, пока не закрыто это окно.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,654
Завершенные тесты: 1
21.01.2016, 10:29 #8
Цитата Сообщение от Slon747 Посмотреть сообщение
не выполнялся остальной код, пока не закрыто это окно.
Зачем это вообще нужно? Не пишите после этой строки код вообще, а вынесете его в onDissmiss диалога.
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 440
21.01.2016, 11:00  [ТС] #9
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Зачем это вообще нужно? Не пишите после этой строки код вообще, а вынесете его в onDissmiss диалога.
У меня один и тот же далогог "Да/Нет" используется для разных логик.
Хочется сделать один диалог и использовать его по любому поводу в любой активити.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,654
Завершенные тесты: 1
21.01.2016, 11:01 #10
Slon747, в чем проблема то? Можно в каждой активити вешать на этот же диалог onDismissListener.
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 440
21.01.2016, 15:03  [ТС] #11
Цитата Сообщение от Spelcrawler Посмотреть сообщение
в чем проблема то? Можно в каждой активити вешать на этот же диалог onDismissListener.
А что это изменить?
Всё равно код будет разбросан по активити.
В одном месте я спрашиваю подтверждение, а в другом (в переопределенном onDismissListener) выполняю действия. Да еще всё также придется перед выполнением анализировать, что же именно я спрашивал у пользователя.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,654
Завершенные тесты: 1
21.01.2016, 15:09 #12
Цитата Сообщение от Slon747 Посмотреть сообщение
А что это изменить?
Да все вообще. Если уж охота писать в одном месте можно даже и так
Java
1
2
3
4
5
6
7
8
9
10
//Берем свой диалог, который везде используется
//Ну и вешаем на него листенер
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialog) {
            //Тут все что нужно после закрытия диалога
        }
    });
//Показываем диалог
dialog.show();
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
21.01.2016, 15:18 #13
мысль пришла что можно в свой диалог передавать Runnable объект, который в дисмис слушателе запускать на выполнение
тогда будет один универсальный диалог на все приложение
х.з. как там этот паттерн называется, стратегия что ли
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 440
21.01.2016, 16:47  [ТС] #14
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Да все вообще. Если уж охота писать в одном месте можно даже и так
Спасибо за подсказку.
Но вот что я делаю. Создал класс для диалога:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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) {
 
    }
Далее вызываю этот диалог из главной активити:
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(), "");
Подчеркивает красным setOnDismissListener.
Тогда я в класс YesNoDialog.java добавляю setter:

Java
1
2
3
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
    this.onDismissListener = onDismissListener;
}
В итоге событие выбора кнопки не перехватывается в onDismiss(DialogInterface dialog)
0
21.01.2016, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2016, 16:47
Привет! Вот еще темы с ответами:

Модальное окно - C++ Qt
Как можно добиться эффекта модального окна чтобы можно было использовать только окно программы?

Модальное окно - JavaScript
Подкиньте простенький код на чистом javascripte. Как отрыть модальное окно, свое? Так чтобы html код был по центру и по верх остальной...

Модальное окно - jQuery
Здравствуйте. Мне нужно чтоб при нажатии на кнопку "+" открывалось модальное окно, а у меня получается что после кнопки "+" ниже...

Модальное окно и БД - PHP БД
Help !!!! Как вывести информацию в модальное окно ??? При нажатии на кнопку вызова модального окна, должна появиться информация с БД. Может...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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