В помощь мобильному разработчику
Android

Пример AlertDialog и DialogFragment в Xamarin Android

Александр Алексеев

Диалог подобен любому другому окну, которое выскакивает на фоне текущего, уже открытого. И он используется для показа определенных коротких сообщений, для предложения пользователю ввести какие-либо данные, а также для того, чтобы позволить ему принять некое решение исходя из доступных вариантов. В отличие от Toast, диалог, как правило, используется там, где обязательно требуется внимание пользователя. Система Android поддерживает разные способы для создания диалога, например, такие как AlertDialog и FragmentDialog. В этом примере мы рассмотрим все аспекты AlertDialog и DialogFragment.

 

1. Использование AlertDialog в Xamarin.Android

AlertDialog является подклассом Dialog, и он может отображать одну, две или три кнопки. Если нужно отобразить строку в этом диалоговом окне, используйте метод SetMessage().

Следующий код может быть использован для создания простого AlertDialog с двумя кнопками «Удалить» и «Отмена».

 

Приведенный выше код выведет на экран такое сообщение, как показано на следующем скриншоте.

 

2. Использование DialogFragment в Xamarin.Android

С момента выхода Android 3.0 (API уровня 11), фрагмент может показываться в виде диалога и называться в этом случае DialogFragment. Если Вы поддерживаете старые версии андроид, то можете использовать соответствующую библиотеку совместимости фрагментов.

С тем чтобы создать фрагмент диалога, мы используем класс DialogFragment. Этот класс наследует от Fragment и ведет себя практически так же, как он самый, то есть со всеми доступными методами его жизненного цикла. Android рекомендует использовать DialogFragment над AlerDialog.

Для того чтобы создать DialogFragment, необходимо выполнить следующие шаги:

  • Создать новый класс, который наследует от класса DialogFragment.
  • Как и в случае с обычными фрагментами, переопределить обратный вызовOnCreateView() для прикрепления диалогового макета.
  • В качестве альтернативного варианта можно переопределить метод OnCreateDialog() и вернуть экземпляр Dialog. Этот метод используется для портирования старого кода AlertDialog без значительных модификаций.

В этом примере мы увидим оба обратных вызова OnCreateView() и OnCreateDialog().

 

3. Использование диалога фрагмента при помощи OnCreateDialog()

На следующем примере можно увидеть, как создается диалог посредством переопределения метода OnCreateDialog().

 

4. Использование фрагмента диалога при помощи OnCreateView()

DialogFragment схож со всеми прочими фрагментами, и к нему применимы все те же правила жизненного цикла. Теперь мы должны переопределить метод onCreateView, чтобы прикрепить макет к иерархии представлений и создать фрагмент диалога.

Давайте сперва определим макет для фрагмента. В этом примере я использую два TextViews и одну кнопку. Мой макет выглядит следующим образом:

Теперь давайте выполним раздувание макета из метода OnCreateView(). У меня класс DialogFragment выглядит вот так:

 

Приведенный выше код выведет на экран такое сообщение, как показано на следующем скриншоте.

 

5. Добавление DialogFragment

И основная работа сделана! Добавьте следующий фрагмент кода в Activity для реализации и отображения диалогового окна:

 

Приведенный выше код выведет на экран такое сообщение, как показано на следующем скриншоте.

Автор: Nilanchala Panigrahy
ИсточникСтатья в блоге автора

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Написать ответ