Personnalisé case de style dans la boîte de dialogue

Je suis de la construction d'un dialogue avec multi-choix des éléments (cases à cocher):

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMultiChoiceItems(arrayResource, selectedItems, new DialogInterface.OnMultiChoiceClickListener() {
    //...
});

AlertDialog dialog = builder.create();
dialog.show();

Et j'ai un style personnalisé pour les cases à cocher:

<style name="CustomCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">
    <item name="android:button">@drawable/btn_check</item>
    <item name="android:textColor">@android:color/holo_purple</item>
</style>

Il fonctionne parfaitement lorsqu'il est appliqué à des cases individuelles dans la mise en page, par la mise en style="@style/CustomCheckBox".

Mais comment puis-je appliquer ce style à la création de dialogue? Ou, alternativement, pour l'ensemble du thème...

Si c'est en quelque sorte pertinent - je suis en utilisant minSdkVersion=14 et targetSdkVersion=19.


Mise à jour:

Maintenant selon MattMatt de réponse, je suis en application d'une coutume case à cocher du style à l'ensemble du thème, et aussi les paramètres d'un style personnalisé pour les dialogues:

<style name="AppTheme" parent="AppBaseTheme">
<item name="android:checkboxStyle">@style/CustomCheckBox</item>
<item name="android:dialogTheme">@style/CustomDialog</item>
<item name="android:alertDialogTheme">@style/CustomDialog</item>
</style>
<style name="CustomCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">
<item name="android:button">@drawable/btn_check</item>
<item name="android:checkMark">@drawable/btn_check</item>
</style>
<style name="CustomDialog" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:checkboxStyle">@style/CustomCheckBox</item>
<item name="android:background">#aaf</item>
</style>

Maintenant, n'importe quel case ajoutée à la mise en page obtient le style personnalisé, et je suis en mesure de changer la boîte de dialogue arrière-plan, mais les cases à cocher dans la boîte de dialogue ne sont pas touchés de façon...

OriginalL'auteur yprez | 2014-01-25

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *