Ao criar o, AlertDialog
você pode definir um tema para usar.
Exemplo - Criando o 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 alterar a aparência do título, você pode fazer o seguinte. Primeiro adicione um novo estilo:
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
depois simplesmente referencie esse estilo em seu MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
Dessa forma, você pode definir um diferente textColor
para a mensagem via android:textColorPrimary
e um diferente para o título através do estilo.
appcompat-v7
- ele traz a compatibilidade com versões anteriores dos componentes mais recentes para o nível API 7 (Android 2.1)Para usar um tema para todo o aplicativo e não use o segundo parâmetro para estilizar sua caixa de diálogo
No meu aplicativo, usando um sotaque de cor no tema, não mostre os botões do alertDialog com o tema colorAccent. Tenho que adicionar um estilo de diálogo ao tema.
fonte
Se você deseja usar o novo android.support.v7.app.AlertDialog e tem cores diferentes para os botões e também possui um layout personalizado, consulte o meu https://gist.github.com/JoachimR/6bfbc175d5c8116d411e
fonte
Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
. Não quero ir tão longe quanto subclassificar o adaptador e ajustar a exibição lá.Siga resposta @reVerse mas no meu caso, eu já tinha alguma propriedade no meu
AppTheme
comoEntão, minha caixa de diálogo se parecerá
Eu resolvi isso
1) Altere a importação de
android.app.AlertDialog
paraandroid.support.v7.app.AlertDialog
2) Substituo 2 propriedades
AppTheme
com valor nulo.
Espero que ajude outras pessoas
fonte
Se você é como eu, só deseja modificar algumas das cores no AppCompat, e a única cor que você precisa alterar exclusivamente na caixa de diálogo é o plano de fundo. Então, tudo o que você precisa fazer é definir uma cor
colorBackgroundFloating
.Aqui está o meu tema básico que simplesmente modifica algumas cores sem temas aninhados:
fonte
fonte