gpt4 book ai didi

android - 对话框中的自定义复选框样式

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:10 25 4
gpt4 key购买 nike

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

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

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

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

我有一个复选框的自定义样式:

<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>

通过设置 style="@style/CustomCheckBox",将其应用于布局中的各个复选框时效果很好。

但是如何将这种样式应用到创建的对话框中呢?或者整个主题...

如果它以某种方式相关 - 我正在使用 minSdkVersion=14targetSdkVersion=19


更新:

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

<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>

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

最佳答案

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

<style name="CustomDialog" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:listChoiceIndicatorMultiple">@drawable/btn_check</item>
<item name="android:background">#aaf</item>
</style>

我是通过查看Android源代码发现的,发现对话框中的多项选择项使用的模板是这个:

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

关于android - 对话框中的自定义复选框样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com