Модальное диалоговое окно - PullRequest
0 голосов
/ 19 августа 2011

Я хочу сделать в приложении Android то, что я могу очень легко сделать в «обычном» приложении Java: в функции, вызываемой щелчком по элементу меню, я хочу отобразить модальное диалоговое окно, в котором любой пользовательМожно ввести текст или выбрать между двумя или тремя ответами (обычно «да», «нет» и «отмена»).После того, как пользователь сделал свой ввод, функция может продолжиться в соответствии с сделанным выбором.

С классом Fragment я могу отобразить диалоговое окно.Проблема в том, что он появляется только после завершения функции, вызванной щелчком пользователя.Это означает, что код, зависящий от пользовательского ввода, должен выполняться в классе, производном от класса Fragment.И у этого есть два недостатка: - он более сложный, потому что необходимо реализовать связь между двумя объектами, - повторное использование класса нелегко, поскольку он настроен для взаимодействия только с одним классом.Конечно, возможно реализовать несколько коммуникаций с таким количеством классов, как мы хотим, но сложность будет еще хуже.

Можно ли сделать то, что я хочу, более простым способом?

Заранее благодарим за потраченное время, пытаясь помочь мне.

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Использование модального диалога в приложениях для Android запрещено по причинам, таким как

  • Телефон может долго оставаться без присмотра. Если в это время появится модальное диалоговое окно, приложение будет заблокировано, пока пользователь не посетит телефон и не отклонит модальное диалоговое окно. Это приведет к потере ценного времени обработки.
  • Даже когда пользователь работает с телефоном, приложение не должно блокироваться, поскольку аппаратная конфигурация телефона намного меньше, чем у настольных компьютеров, и важна каждая миллисекунда времени обработки.

Возможно, мне не хватает других моментов, но это важные.
Поэтому вы должны рассмотреть возможность использования обратных вызовов для продолжения обработки ввода пользователя.

0 голосов
/ 19 августа 2011

Возможно попробуйте использовать http://developer.android.com/reference/android/app/Fragment.html#getActivity()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...