Почему бы один использовать AlertDialog.Builder
класс, а не методы, непосредственно доступной AlertDialog
, почему, например, использовать AlertDialog.Builder.setCancellable
, а не AlertDialog.setCancellable
? Неужели это случай избыточности?AlertDialog против AlertDialog.Builder
ответ
Потому что AlertDialog.setCancellable
возвращает void и AlertDialog.Builder.setCancellable
возвращает AlertDialog.Builder
.
Это означает, что строитель позволяет вам сгруппировать кучу настроек с помощью немного меньшей многословности. Это просто класс удобства
Я думаю, что фабричные методы просто более удобны.
AlertDialog позволяет вам показывать диалог над вашей деятельностью/фрагментом. Он обычно используется для запроса пользователю взаимодействия, в том числе нескольких кнопок или для чего-то чего-то известить.
AlertDialog.Builder - внутренний статический класс AlertDialog, который позволяет вам быстро настроить диалог с помощью его удобных методов. Его просто как вспомогательный класс для AlertDialog. Он используется для вызова методов в цепочке.
Но кто это помогает? Его цель состоит в том, чтобы упростить все в одном длинном заявлении, а не в нескольких отдельных заявлениях (задание названия и т. Д.), Или же оно предлагает больше функциональности? – stephenfin
да, его для удобства вызвать методы в цепочке тоже – waqaslam
@stephenfin фактически классы no-builder предназначены не только для вызовов метода цепочки. они очень часто действуют как фабрика, которая обеспечивает разумные значения по умолчанию и параметры настройки. также очень важно, чтобы продукт ('AlertDialog') был неизменным/абстрактным, в то время как заводские аналоги не могут значительно облегчить процесс создания продукта. возьмите, например, 'StringBuilder' или' ProcessBuilder'. – andr
AlertDialog.Builder
делает настройки атрибутов, таких как setTitle()
или setMessage()
и не отображаются пользователю.
AlertDialog
является тот, который отображает те атрибуты, которые были множество в AlertDialog.Builder
.
Целью иметь как упомянутое, так и другое, является то, что он позволяет устанавливать настройки отдельно от фактического отображения, что в свою очередь делает удобной вещь.
- 1. Сделать AlertDialog без использования AlertDialog.Builder
- 2. AlertDialog show = new AlertDialog.Builder (this) is undefined
- 3. AlertDialog = new AlertDialog.builder (this) получает ошибку типа
- 4. Использование AlertDialog.Builder для создания пользовательского класса AlertDialog
- 5. AlertDialog.Builder открыть еще один AlertDialog.Builder
- 6. Как создать AlertDialog с ListView, не используя AlertDialog.Builder?
- 7. AlertDialog.Builder vs class для расширения AlertDialog - размер приложения
- 8. Как получить доступ к сообщению AlertDialog, созданного AlertDialog.Builder?
- 9. AlertDialog.Builder item background color
- 10. AlertDialog внутри AlertDialog
- 11. Как отклонить AlertDialog.Builder?
- 12. Изменение цвета кнопки AlertDialog.Builder
- 13. OnItemClick Слушатель для AlertDialog.Builder
- 14. AlertDialog.Builder Ошибка
- 15. AlertDialog.Builder style на Android
- 16. Закрытие AlertDialog.Builder в Android
- 17. AlertDialog.Builder - разделение на другой класс
- 18. Как вызвать AlertDialog внутри AlertDialog?
- 19. Как вызвать alertDialog в alertDialog?
- 20. Как вызвать findViewById в AlertDialog.Builder?
- 21. Добавить вибрацию в AlertDialog.Builder
- 22. AlertDialog.Builder динамически setMessage
- 23. Как создать AppCompatDialog из AlertDialog.Builder или эквивалент?
- 24. Уплотненного AlertDialog
- 25. Android AlertDialog.Builder с Radiobutton и Spinner
- 26. Как отклонить AlertDialog.Builder с настраиваемой кнопкой
- 27. Как изменить размер AlertDialog.Builder?
- 28. AlertDialog вопрос
- 29. AlertDialog.Builder: setView; пользовательский вид не отображается
- 30. Разница между объектами obj.create() против AlertDialog.builder() vs obj.show() vs obj.create(). Show()
Так что это «вроде», как операторы istream/ostream на C++? Это звучит разумно – stephenfin