Al crear el AlertDialog
puede establecer un tema para usar.
Ejemplo: crear el cuadro de diálogo
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
styles.xml: estilo personalizado
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
Resultado
Editar
Para cambiar la apariencia del título, puede hacer lo siguiente. Primero agregue un nuevo estilo:
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
luego simplemente haga referencia a este estilo en su MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
De esta manera, puede definir una diferente textColor
para el mensaje a través android:textColorPrimary
y una diferente para el título a través del estilo.
appcompat-v7
: trae la compatibilidad con versiones anteriores de los componentes más nuevos al nivel API 7 (Android 2.1)Para usar un tema para toda la aplicación, y no use el segundo parámetro para diseñar su Diálogo
En mi aplicación, usando un acento de color en el tema, no se muestran los botones de alerta del Diálogo con el color del tema Acento. Tengo que agregar un estilo de diálogo en el tema.
fuente
Si desea utilizar el nuevo android.support.v7.app.AlertDialog y tiene diferentes colores para los botones y también tiene un diseño personalizado, eche un vistazo a mi https://gist.github.com/JoachimR/6bfbc175d5c8116d411e
fuente
Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
. No quiero ir tan lejos como subclasificar el adaptador y ajustar la vista allí.Siga respuesta @reVerse pero en mi caso, ya tenía alguna propiedad en mi
AppTheme
comoEntonces mi diálogo se verá así
Lo resolví por
1) Cambie la importación de
android.app.AlertDialog
aandroid.support.v7.app.AlertDialog
2) Anulo 2 propiedades
AppTheme
con valor nulo.
Espero que ayude a otras personas
fuente
Si eres como yo, solo quieres modificar algunos de los colores en AppCompat, y el único color que necesitas cambiar de forma única en el cuadro de diálogo es el fondo. Entonces todo lo que necesita hacer es establecer un color para
colorBackgroundFloating
.Aquí está mi tema básico que simplemente modifica algunos colores sin temas anidados:
fuente
fuente