对话框中自定义checkbox样式

我正在构建一个包含多项选项(checkbox)的对话框:

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMultiChoiceItems(arrayResource, selectedItems, new DialogInterface.OnMultiChoiceClickListener() { // ... }); AlertDialog dialog = builder.create(); dialog.show(); 

我有一个自定义样式的checkbox:

  @drawable/btn_check @android:color/holo_purple  

通过设置style="@style/CustomCheckBox" ,它在应用于布局中的各个checkbox时非常style="@style/CustomCheckBox"

但是,如何将此样式应用于创建的对话框? 或者对整个主题来说……

如果它在某种程度上相关 – 我使用minSdkVersion=14targetSdkVersion=19


更新:

现在根据MattMatt的回答,我将自定义checkbox样式应用于整个主题,并为对话框设置自定义样式:

  @style/CustomCheckBox @style/CustomDialog @style/CustomDialog   @drawable/btn_check @drawable/btn_check   @style/CustomCheckBox #aaf  

现在添加到布局的任何checkbox都会获得自定义样式,我可以更改对话框的背景,但对话框中的checkbox不会受到任何影响……

实际上,调用setMultiChoiceItems不会产生CheckBox小部件,而是CheckedTextView小部件。 [更新]似乎更改checkMark属性的值也没有任何效果。 但是,通过更改CustomDialog样式的listChoiceIndicatorMultiple属性的值,我能够更改选项的drawable。 喜欢这个:

  

我通过查看Android源代码发现了这一点,并发现对话框中用于多项选项的模板是这样的:

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/select_dialog_multichoice_holo.xml

您可以在文档中的主题和样式中find您要查找的所有内容,并将主题的属性应用于Android attrs docs中的属性

为方便您使用,请按照以下示例操作:

   

现在,只要“myTheme”设置为Activity,就会有一个自定义checkbox;)

希望这有帮助,快乐编码!

您可以为所有checkbox状态设置drawable。 Drawables可能是图片或形状,因此您可以自由设置您想要的任何背景。

1>根据需要为cb检查和取消选中状态制作两个png文件,并将它们存储在应用程序的drawable文件夹中。

2>现在制作一个customdrawble.xml文件,如下所示:

 < ?xml version="1.0" encoding="utf-8"?>       

3>现在将您的checkbox设置如下:

  

该解决方案适用于我更改单个checkbox的显示