Dado que el razonamiento de MrSnowflake es inexacto, me estoy tomando la libertad de dar otra respuesta.
Hay algo mal con el marcado en cuestión de Steve Haley, y se está mezclando hasta alertDialogStyle y alertDialogTheme, muy probablemente debido al hecho de que alertDialogTheme se introdujo mucho después alertDialogStyle estaba cerca.
Así que aunque @android: style/Theme.Dialog.Alert esté disponible en su plataforma Andoid, aún no puede utilizar su poder de expresión enganchando una versión personalizada en su propio tema a menos que su plataforma Android admita un android: alertDialogTheme atributo/elemento para temas. (Puede o no ser el caso de que existan versiones de Android tan incoherentes, no estoy seguro. Pero el marcado utilizado en la pregunta sugiere que sí.)
En el marcado de la pregunta, el padre = " @android: style/Theme.Dialog.Alert "no hará nada excepto crear la ilusión de que está personalizando el tema del diálogo de alerta cuando en realidad solo está personalizando el estilo de diálogo de alerta.
Así se verá el marcado; no todas las versiones de Android admiten todas las funciones.
<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>
Personalización del estilo de diálogo de alerta ha sido de alrededor durante bastante tiempo, pero se limita a proporcionar (fondo) dibujables para "fullDark", "topDark", etc.
Personalizar el tema de diálogo de alerta se abre un método para proporcionar atributos como windowBackground, windowTitleStyle y demás, pero como se dijo anteriormente, necesita una versión de Android que admita el atributo/elemento alertDialogThem para temas. No puedo averiguar exactamente cuándo se presentó esto, pero no ha sido Android 2.2 y Eclipse te dirá de todos modos ...
No tengo los recursos para validar la conclusión de MrSnowflake de que es imposible dar estilo al diálogo de alerta botones en XML, pero a menos que enfrentemos uno de esos aspectos algo desagradables de Android en los que realmente falta una característica, me parece poco probable.
Como cuestión de hecho, lo que falta en la pregunta es la parte más relevante a este respecto, a saber
<style name="customButtonStyle" />
por lo que la conclusión de que los botones de diálogo de alerta no obedecen al Widget.Button aún no está probada desde mi punto de vista.
Conclusión consolidada: La capacidad de estilo de los diálogos de alerta independientemente de otros widgets es limitada en Android, pero cada vez más potente a medida que las nuevas versiones mejoran en este aspecto.
Hmm. Eso sería molesto; cambiar los botones de diálogo no debería ser una cosa inusual, ya que es fácil aplicar un estilo de botón a los botones de actividad 'normal'. –
En actividades normales, define el diseño de la vista de contenido con un xml. Dialog hace esto por usted, por lo que no tiene acceso al diseño xml. La implementación de su propio diálogo (posiblemente solo con una llamada setContentView()) le permite usar un xml diferente y, por lo tanto, diferentes estilos para los botones. – MrSnowflake
¿Cómo clasificaría AlertDialog para que pueda usar AlertDialog.Builder con su subclase? –