В чем разница между Dialog.setContentView (View) и AlertDialog.setView (View)

Я работаю над созданием пользовательского диалогового окна для ввода ввода от пользователя. Я заметил, что когда я использую AlertDialog я могу добавить в AlertDialog виджеты, такие как EditText с помощью setView() . Я AlertDialog настройку AlertDialog и заметил, что Dialog имеет метод setContentView() . В подклассе AlertDialog я мог бы использовать setContentView() или setView() .

Одна разница, которую я заметил, – это когда я использую setView() в AlertDialog , я вижу кнопки Positive & Negative. В моем подклассе AlertDialog , используя setContentView() я не получаю кнопки Positive & Negative.

Может ли кто-нибудь объяснить другие различия?

Благодарю.

Solutions Collecting From Web of "В чем разница между Dialog.setContentView (View) и AlertDialog.setView (View)"

Если я откажусь от него правильно, setContentView раздувает все диалоговое окно с вашим настраиваемым макетом. Название, значок, кнопки … ничего не остается. setView с другой стороны, устанавливает макет представления между кнопками и заголовком.

Просмотреть изображение

SetContentView – метод класса отца AlertDialog, это означает, что все диалоговые окна, а setView – метод AlertController, в представлении окон AlertDialog есть topPanel, contentPanel, buttonPanel.setView только устанавливает customView в contentpanel.

Кстати, вы также можете вызвать метод setView AlertDialogs, который, как представляется, также удаляет лишние «интервалы» вокруг представления.

Void setView (View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)

как это.

alertDialog.setView (MyView, 0,0,0,0);