51 votes

Changer la couleur du bouton dans AlertDialog

Comment puis-je changer la couleur du ou des boutons dans un fichier de type AlertDialog dans Android ?

0voto

MrG Points 396

Voici comment procéder :

// Initializing a new alert dialog
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.message);
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        doAction();
    }
});
builder.setNegativeButton(R.string.cancel, null);

// Create the alert dialog and change Buttons colour
AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
    @Override
    public void onShow(DialogInterface arg0) {
        dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.red));
        dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.blue));
        //dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setTextColor(getResources().getColor(R.color.black));
    }
});
dialog.show();

0voto

Nitish Kumar Points 21

Il suffit de rendre la chaîne Spannable et de la passer à setPositveButton ou au bouton négatif. comme ceci

val n=getString(R.string.reject).toSpannable() n.setSpan(ForegroundColorSpan(Color.RED),0,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) n.setNegativeButton(n)

-1voto

Zarah Points 3050

Faites-vous référence aux boutons neutre, positif et négatif ? Ou aux boutons que vous avez inclus dans la mise en page ?

Si vous faites référence à la première, alors oui, vous pouvez. Consultez le Section sur les boutons personnalisés dans ce tutoriel . Vous avez essentiellement besoin d'un fichier XML qui indiquera à votre bouton le dessin/couleur à utiliser pour chaque changement d'état. Vous pouvez ensuite définir ce fichier XML comme arrière-plan de votre bouton.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X