Учитывая, что рассуждения г-на Снейнфлейка неточны, я беру на себя свободу, чтобы дать другой ответ.
Существует что-то неправильно с разметке в вопросе Стива Хейли, и это смешение alertDialogStyle и alertDialogTheme, скорее всего из-за того, что alertDialogTheme был введен после того, как долго alertDialogStyle был вокруг.
Таким образом, даже если @android: style/Theme.Dialog.Alert доступен на вашей платформе Andoid, вы по-прежнему не можете использовать его выразительную силу, подключив cusomized версию обратно в свою собственную тему, если ваша платформа Android не поддерживает android: alertDialogTheme атрибут/элемент для тем. (Возможно, это может быть или не быть так, что такие непоследовательные версии Android существуют, я не знаю точно, но разметка, используемая в вопросе, предполагает, что она это делает.)
В вопросительной разметке родительский = @android: style/Theme.Dialog.Alert «ничего не сделает, кроме создания иллюзии, что вы настраиваете тему диалога оповещений, когда вы действительно настраиваете стиль диалога оповещений.
Вот как должна выглядеть надбавка; не все версии Android поддерживают все функции.
<style name="myTheme" parent="android:Theme">
<item name="android:buttonStyle">@style/customButtonStyle</item>
<item name="android:alertDialogStyle">@style/dialogAlertStyle</item>
<item name="android:alertDialogTheme">@style/dialogAlertTheme</item>
</style>
<style name="dialogAlertStyle" parent="@android:style/AlertDialog">
<item name="android:fullDark">[...]</item>
[...]
</style>
<style name="dialogAlertTheme" parent="@android:style/Theme.Dialog.Alert">
<item name="android:windowBackground">[...]</item>
[...]
</style>
Настройка оповещения диалога стиль был вокруг в течение достаточно долгого времени, но ограничивается предоставлением (фона) для вводимого коэффициента «fullDark», «topDark» и т.д.
Настройка оповещения диалога тема открывает метод для предоставления таких атрибутов, как windowBackground, windowTitleStyle и т. д., но, как указано ранее, вам нужна версия Android, которая поддерживает атрибут/элемент alertDialogThem для тем. Я не могу понять, когда это было введено, но это не было Android 2.2, и Eclipse расскажет вам в любом случае ...
У меня нет ресурсов для проверки вывода MrSnowflake, что невозможно настроить диалог оповещения кнопок в XML, но, если мы не столкнемся с одним из тех неприятных аспектов Android, где функция действительно отсутствует, я нахожу ее маловероятной.
В самом деле, чего не хватает в этом вопросе является наиболее значимой частью в этом отношении, а именно
<style name="customButtonStyle" />
поэтому вывод, что бдительные диалоговые кнопки не подчиняются Widget.Button еще не доказано с моей точки зрения.
Консолидированный вывод: Умения настраивать диалоговые окна предупреждений независимо от других виджетов ограничены в Android, но становятся более мощными, так как новые версии улучшаются в этом отношении.
Хм. Это будет раздражать; изменение кнопок «Диалог» не должно быть необычным, если учесть, что для кнопок «нормальная» активность легко применить стиль кнопки. –
В обычных действиях вы определяете расположение представления содержимого с помощью xml. Диалог делает это для вас, поэтому у вас нет доступа к макету xml. Внедрение собственного диалога (возможно, только с вызовом setContentView()) позволяет вам использовать разные xml и, следовательно, разные стили для кнопок. – MrSnowflake
Как бы вы подклассировали AlertDialog, чтобы вы могли использовать AlertDialog.Builder с вашим подклассом? –