Диалоговое окно delphi android

Диалоговые окна

Начиная с Android 3.0, работа с диалоговыми окнами чуть изменилась. С тех пор статья не переписывалась и могла морально устареть.

Общая информация

В некоторых случаях требуется показать диалоговое окно, где пользователю нужно сделать какой-нибудь выбор или показать сообщение об ошибке. Безусловно, можно создать собственное окно, расположить в нем нужные кнопки и обрабатывать их нажатия. Но, в Android уже есть собственные встроенные диалоговые окна, которые гибко настраиваются под задачи. Использование диалоговых окон для простых задач позволяет сократить число классов Activity в приложении, экономя ресурсы памяти. Ведь вам не придётся регистрировать активность в манифесте, думать над компоновкой элементов на экране и так далее.

Диалоговые окна в Android представляют собой полупрозрачные «плавающие» активности, частично перекрывающие родительский экран, из которого их вызвали. Как правило, они затеняют родительскую активность позади себя с помощью фильтров размывания или затемнения. Вы можете установить заголовок с помощью метода setTitle() и содержимое с помощью метода setContentView().

Android поддерживает следующие типы диалоговых окон:

  • Dialog — базовый класс для всех типов диалоговых окон;
  • AlertDialog — диалоговое окно с кнопками, списком, флажками или переключателями;
  • CharacterPickerDialog — диалоговое окно, позволяющее выбрать символ с ударением, связанный с базовым символом;
  • ProgressDiaiog — диалоговое окно с индикатором прогресса при помощи компонента ProgressBar. В API 26 признан устаревшим.
  • DatePickerDialog — диалоговое окно выбора даты с элементом DatePicker
  • TimePickerDialog — диалоговое окно выбора времени с элементом TimePicker

Если ни один из существующих типов диалоговых окон вам не подходит, то можете создать своё собственное диалоговое окно.

Класс Dialog

Класс Dialog является базовым для всех классов диалоговых окон. Поскольку ProgressDialog, TimePickerDialog И DatePickerDialog — расширение класса AlertDialog, они также могут иметь командные кнопки.

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

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

Метод dismissDialog() прячет диалоговое окно (но не удаляет), не отображая его на экране. Окно остаётся в пуле диалоговых окон данной активности. При повторном отображении при помощи метода showDialog() будет использована кэшированная версия окна.

Метод removeDialog() удаляет диалоговое окно из пула окон данной активности. При повторном вызове метода showDialog() диалоговое окно придётся создавать снова.

Рассмотрим базовый пример создания диалогового окна на основе класса Dialog. Создайте простейшую разметку для диалогового окна — текстовое поле внутри LinearLayout. В разметку главной активности добавьте кнопку для вызова диалогового окна. В коде для главной активности напишем:

По умолчанию при показе диалогового окна главная активность затемняется. В документации есть константы, позволяющие управлять степенью затемнения:

На эмуляторе я не заметил разницы. В старой версии Android 2.3 был ещё эффект размытия WindowManager.LayoutParams.FLAG_BLUR_BEHIND, который теперь считается устаревшим. Если вы по упрямству всё равно пропишите данный эффект, то получите не эффект размытия, а чёрный фон. Кто знает, может вас устроит данный вариант.

Методы onCreateDialog() и onPrepareDialog()

Метод onCreateDialog() вызывается один раз при создании окна. После начального создания при каждом вызове метода showDialog() будет срабатывать обработчик onPrepareDialog(). Переопределив этот метод, вы можете изменять диалоговое окно при каждом его выводе на экран. Это позволит привнести контекст в любое из отображаемых значений. Если требуется перед каждым вызовом диалогового окна изменять его свойства (например, текстовое сообщение или количество кнопок), то можно реализовать внутри этого метода. В этот метод передают идентификатор диалога и сам объект Dialog, который был создан в методе onCreateDialog().

Читайте также:  Автоочистка оперативной памяти андроид

Так как в одном приложении может быть несколько диалоговых окон, то необходимо заранее определить диалоговое окно, которое будет использоваться в активности. Для этого создаётся идентификатор (константа с целым числом). При вызове метода showDialog() вы передаёте данный идентификатор диалогового окна в качестве параметра. После этого идёт вызов метода onCreateDialog(), который возвращает экземпляр нужного диалогового окна.

Можно создавать диалог без onCreateDialog(), например в обработчике нажатия кнопки вызова диалога, но тогда он не будет присоединён к текущей активности. Чтобы прикрепить его к активности, необходимо вызвать метод setOwnerActivity(), передав ему в качестве параметра текущую активность.

Перейдём к примеру. Если в активности должны вызываться несколько различных диалоговых окон, сначала необходимо определить целочисленный идентификатор для каждого диалога, например:

Эти идентификаторы потом можно использовать в вызове метода showDialog() и в обработчике события onCreateDialog() в операторе switch:

Следует отметить, что методы Activity.onCreateDialog() и Activity.onPrepareDialog() устарели. Используйте DialogFragment.

Диалоговое окно AlertDialog

Примеры создания диалоговых окон типа AlertDialog рассмотрены в этой статье

AlertDialog с ссылкой

Практического смысла возможно не имеет, но можно сделать текст сообщения ссылкой.

Источник

Диалоговые окно Delphi XE7(Android)

Delphi XE7, Android, звук в программе
Доброго вечера. Стою перед проблемой массового проигрывания коротких звуков (0.3-1.5с) в.

Android и звук в RAD xe7
Не могу добавить звук нажатия кнопки, так что бы файл (звук) был в самом файле Добавлено через 7.

Ошибка при компиляции в XE7 под Android
Здравствуйте! Решил начать попрограммировать под Android Но на простейшем проекте типа «Hello.

Delphi XE7
Здравствуйте уважаемые пользователи данного форума у меня возникла проблема с копированием.

Решение

варианты
1) просто сделать новая форму
2) inputQuery(параметры как обычно и последний необычный)

Delphi XE7
Привет! Как правильно вызвать MessageDlg? Прочитал хелп, теперь надо юзать анонимный метод в.

Не устанавливается delphi xe7
Здравствуйте. Не ставиться дельфи хе7, пишет вот это вот: Ось win 7 64x. Такая же проблема.

Delphi XE7 Вибрация
Доброе время суток . Подскажите как решить проблемку с вибрацией при переходе с XE5 на XE7 . В.

Значок exe в Delphi XE7
Как поменять значок из стандартного на свой в Delphi XE7. O_o Загружаю картинку в Project -.

Источник

Диалоговые окна в Android. Часть 1

Dialog

Dialog — это класс, принадлежащий Android SDK и помогающий нам, простым смертным программистам, работать с диалоговыми окнами в Android. Класс Dialog имеет 4 подкласса:

  • AlertDialog: это диалоговое окно для различных сообщений приложения, например «Вы хотите купить мое приложение?» или что то в этом роде. AlertDialog поддерживает три кнопки — утвердительную (OK), отрицательную (Cancel) и нейтральную (Later).
  • ProgressDialog: это диалоговое окно для отображения выполнения различных процессов, загрузки, например.
  • DatePickerDialog: диалоговое окно предлагает пользователю выбрать дату.
  • TimePickerDialog: диалоговое окно предлагает пользователю выбрать время

На первом из этого списка, AlertDialog мы и остановимся подробнее.

AlertDialog

Чтобы создать диалоговое окно AlertDialog нам в помощь потребуется экземпляр класса Builder:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
Теперь, когда у нас есть builder, мы можем «строить» свое собственное диалоговое окно. В параметры диалогового окна Вы можете написать множество различных параметров, но основными являются эти:

  • setTitle(int resID) — задает заголовок диалогового окна, принимает в качестве аргументов ссылку на ресурс или строку.
  • setMessage(int resID) — задает сообщение в диалоговом окне, также принимает ссылку на ресурс или строку.
  • setPositiveButton(int textID, DialogInterface.OnClickListener listener) — устанавливает на Вашем диалоговом окне утвердительную кнопку с текстом ресурса textID и слушателем listener. Методы setNegativeButton и setNeutralButton идентичны, с разницей в назначении кнопок.

Пример создания AlertDialog:

В этом примере я использовал setCancelable(true) — это разрешает пользователю закрывать диалоговое окно с помощью хардварной кнопки Back. Еще я создал слушателя для утвердительной кнопки и использовал метод create(). Метод create() возвращает готовое диалоговое окно с вашими параметрами как экземпляр класса AlertDialog.
Вот мы и создали диалоговое окно! Следующая задача — показать его пользователю. Вот тут есть несколько вариантов:

  • showDialog(AlertDialog dialog) — самый простой способ показать диалоговое окно, но начиная с версии 3.0 разработчики Android не рекомендуют пользоваться этим методом, и в результате вы получите предупреждение, которое можно обойти только @SurpressWarning, что есть не совсем хорошо.
  • AlertDialog dialog.show() — альтернативный способ показать окно, для этого в экземпляре dialog должен лежать результат метода Builder.create().
Читайте также:  Как добавить системный звук андроид

Второй метод нам подходит больше, но писать в основной активности кучу различных Buider и AlertDialog портит читабельность кода. Поэтому целесообразней вынести создание и обработку диалоговых окон в новый класс, например:

Единственная заметка по поводу этого кода будет про использования метода setView(View view) в диалоге IDD_SETTINGS. У AlertDialog как и у всех остальных диалоговых окон есть одна приятная особенность — им можно задавать собственные Layout, что позволяет полностью видоизменять диалоговые окна и их содержимое. Здесь есть один подводный камень: обработку элементов этого Layout вы должны будете производить именно в той Activity, где вызываете это диалоговое окно. Например я показываю диалоговое окно IDD_SETTINGS в MainActivity с Layout по имени settings:

Соответственно я загружаю это окно в MainActivity:

Метод initSettings класса MainActivity в данном случае будет выглядеть так:

Ну а дальше обрабатываете свои объекты как вам угодно.

Небольшой итог

1) Для большинства целей диалоговых окон подходит AlertDialog
2) AlertDialog может принимать вид layout с любыми объектами
3) Гораздо лучше использовать для диалоговых окон отдельный класс и пользоваться AlertDialog.show()
4) Обработка объектов кастомного layout производится в активности, вызвавшей диалог

В следующей части этой статьи пойдет речь о DialogFragment, который был включен в Android SDK начиная с 3.0 Honeycomb. Надеюсь эта статья поможет новичкам и не очень в своих квестах по завоеванию Google Play.

Источник

Диалоговое окно delphi android

Школа программирования Delphi

Портал DelphiSchool является бесплатным проектом, обеспечивающим пользователям быстрый и легкий доступ к урокам программирования на Delphi. Сайт позволяет научиться программировать на Делфи любому, кто хочеть писать свои программы, игры, Android приложения, программы для MAC OC или IOS. Кроме уроков Delphi и статей Delphi, на сайте доступны также и видеоуроки. Практически к каждому уроку, пользователю доступен исходник, изучив который, он сможет наглядно посмотреть как работает та или иная программа, написанная на Делфи. Кроме того мы постараемся прилагать к каждому материалу (статье, уроку, видеоуроку) файлы Delphi, которые будут помогать изучить предоставленный материал.

Каждый кто решил написать свою программу, создать свое приложение, научиться программировать и т.д., найдет на DelphiSchool статьи Delphi, уроки Delphi, видеоуроки Delphi, исходники Delphi, файлы Delphi, изучит компоненты Delphi, посмотрит Delphi примеры и многое другое абсолютно бесплатно. Все о Delphi программировании теперь собрано на одном сайте.
DelphiSchool

Давайте скомпилируем и запустим нашу программу. Перед нами появится форма с 5-ю кнопками. Если нажать на кнопку ShowMessage, то перед нами появится сообщение «Это простое диалоговое окно».

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

Функция MessageDlg
Функция MessageDlg(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; Helpctx: Longint) : word отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр Msg содержит отображаемое сообщение.
Окно сообщения может относиться к различным типам и наряду с сообщением содержать картинки. Тип окна сообщения определяется параметром АТуре, который может принимать следующие значения:
mtWarning — окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning;
mtError — окно содержит белый косой крест в красном круге и заголовок Error;
mtInformation — окно содержит синюю букву «i» в белом круге и заголовок Information;
mtConfirmation — окно содержит синий знак «?» в белом круге и заголовок Confirmation;
mtCustom — окно не содержит картинки, в заголовке выводится название исполняемого файла приложения.

Читайте также:  How to hide toolbar android

Параметр AButtons задает набор кнопок окна и может принимать любые комбинации следующих значений:
mbYes (кнопка Yes);
mbAbort (кнопка Abort);
mbNo (кнопка No);
mbRetry (кнопка Retry);
mbOk (кнопка OK);
mbIgnore (кнопка Ignore);
mbCancel (кнопка Cancel);
mbAll (кнопка All);
mbHelp (кнопка Help);

Для значения параметра AButtons имеются две константы — mbYesNoCancel и mbOKCancel, задающие предопределенные наборы кнопок:
mbYesNoCancel = [mbYes, mbNo, mbCancel];
mbOKCancel = [mbOK, mbCancel]

При нажатии любой из указанных кнопок (кроме кнопки Help) диалоговое окно закрывается, а результат (свойство ModalResult) возвращается функцией MessageDlg.
Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалогового окна при нажатии пользователем клавиши F1. Обычно! значение этого параметра равно нулю.
Ниже приведен пример использования функции MessageDlg:

Функция MessageDlgPos
Функция MessageDlgPos(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer) : Word отличается от функции MessageDlg наличием параметров Х и Y, управляющих положением окна на экране.
Давайте немного изменим предыдущий пример и получим:

Функция InputBox
Функция InputBox(const ACaption, APrompt, ADefault: String): String отображает диалоговое окно для ввода строки текста. Окно выводится в центре экрана и содержит поле ввода с надписью, а также кнопки ОК и Cancel.
Параметр ACaption задает заголовок окна, а параметр APrompt содержит поясняющий текст к полю ввода. Параметр ADefault определяет строку, возвращаемую функцией при отказе пользователя от ввода информации (нажатие кнопки Cancel или клавиши Esc).
Ниже приведен пример использования функции InputBox:

Функция InputQuery
Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра — строки по умолчанию — используется параметр Value, который в случае подтверждения ввода содержит введенную пользователем строку.
В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК, то функция возвращает значение True, если нажата кнопка Cancel или клавиша Esc — значение False.
В нижеприведенном примере показано использование функции InputQuery:

К уроку (статье) Диалоговые окна в Delphi. ShowMessage, MessageDlg, MessageDlgPos, InputBox и InputQuery прилагается исходник, посмотрев который, вы можете ознакомиться с полным исходным кодом программы и посмотреть как работает созданная программа. Исходный код сопровождается комментариями, благодаря чему вы сможете легко в нем разобраться. Но я настоятельно рекомендую делать все самостоятельно. Так вы лучше и быстрее усвоите то, о чем говорилось в этом уроке

Для того чтобы получить возможность скачать исходник Delphi к этому уроку, необходимо посетить сайт рекламодателя. После этого, появится ссылка на исходник Delphi к уроку Диалоговые окна в Delphi. ShowMessage, MessageDlg, MessageDlgPos, InputBox и InputQuery
Нажмите на эту ссылку Ссылка

Популярные уроки (TOP 10 уроков Delphi):

Диалоговые окна в Delphi. ShowMessage, MessageDlg, MessageDlgPos, InputBox и InputQuery
Основы работы с MS Word. Создание, открытие, сохранение и закрытие документа Word с помощью Delphi
Delphi и RadioGroup. Пример работы с группой компонентов RadioButton в Делфи
Delphi и TButton. Учимся работать с кнопкой в Delphi. Часть 2. События кнопки
Delphi и TEdit. Пример работы со строками ввода в Делфи
Delphi и ComboBox. Пример работы с ниспадающими списками в Делфи
Константы в Delphi. Объявление констант в Делфи
Массивы в Delphi. Пример работы с массивами в Делфи
Управление циклами в Delphi. Операторы Continue и Break.
Delphi и TPanel. Пример работы с панелями в Делфи

https://billscheatworld.com/ROBLOXHackOnlineUltimate — ULTIMATE GENERATOR for ROBLOX GAME Club BUILDERS AVAILABLE! 2020 APRIL/MAY UPDATED!

KW:
ROBLOX Robux Hack 2020 APRIL UPDATED
ROBLOX Hack No Verification 2020 APRIL UPDATED

Источник

Оцените статью