AlertDialog или пользовательский диалог

Я разрабатываю приложение для Android 2.2.

Я хочу показать текст с кнопкой «ОК», но я хочу добавить свой собственный стиль.

Что лучше выбрать AlertDialog с пользовательским макетом или диалоговое окно?


person VansFannel    schedule 07.02.2011    source источник


Ответы (2)


Я бы выбрал AlertDialog:

  • Это проще реализовать.
  • Единственная пользовательская вещь, которую вам нужно сделать, — это XML-макет, а затем раздуть его.

AlertDialog dialog = new AlertDialog.Builder(this)
    .setView(getLayoutInflater().inflate(R.layout.custom_dialog, null))
    .create();

Чтобы прослушивать события пользовательского интерфейса:

View view = getLayoutInflater().inflate(R.layout.custom_dialog, null);
Button btn = (Button)view.findViewById(R.id.the_id_of_the_button);
btn.setOnClickListener(blah blah);
AlertDialog dialog = new AlertDialog.Builder(this)
    .setView(view)
    .create();

Вы можете просмотреть документацию по диалоговым окнам Android:

Класс Dialog является базовым классом для диалогов, но вам следует избегать непосредственного создания экземпляра Dialog. Вместо этого используйте один из следующих подклассов:

person Cristian    schedule 07.02.2011
comment
Спасибо за Ваш ответ. У меня есть еще один вопрос: если в этом макете custom_dialog есть кнопка, как я могу добавить OnClickListener? - person VansFannel; 07.02.2011

AlertDialog — это облегченная версия Dialog. Это должно иметь дело только с ИНФОРМАЦИОННЫМИ вопросами, поэтому сложные взаимодействия с пользователем ограничены. Диалог, с другой стороны, способен делать еще более сложные вещи.

когда мне следует использовать диалоговое окно предупреждений?

-Когда я просто хочу что-то сообщить пользователю.

-Когда мы хотим использовать для подсказки, например, Вы хотите вернуться (Да, Нет, Отмена. Диалоговое окно предупреждения имеет 3 кнопки: положительные, отрицательные и нейтральные, которые предоставляются по умолчанию).

-Когда я хочу запросить у пользователя простое значение (число/дата/строка...)

введите здесь описание изображения

когда мне следует использовать диалоговое окно?

-Когда я хочу выполнить сложный процесс с большим количеством кнопок и виджетов.

-Пример:

введите здесь описание изображения

person Hissaan Ali    schedule 08.05.2021