【问题标题】:Change Checkbox color of AlertDialog with MultiChoiceItems使用 MultiChoiceItems 更改 AlertDialog 的复选框颜色
【发布时间】:2019-06-03 04:08:37
【问题描述】:

我正在尝试使用 MultiChoiceItems

更改 AlertDialog 的颜色

Java:

   private void displayMultiSelectDialog() {
        emoji = getResources().getStringArray(R.array.photo_editor_emoji);
        boolean[] checkedItems = new boolean[emoji.length];
        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this, R.style.DialogTheme);
        dialogBuilder.setTitle("Select Emoji");
        dialogBuilder.setMultiChoiceItems(convertListEmoji(emoji), checkedItems,
                (dialogInterface, which, isSelected) -> {
                    if (isSelected) {
                        selectedEmoji.add(emoji[which]);
                    } else {
                        selectedEmoji.remove(emoji[which]);
                    }
                }
        );
        dialogBuilder.setPositiveButton("Done", (dialog, which) -> showSelectedColors());
        dialogBuilder.create().show();
    }

XML:

   <style name="DialogTheme">
        <item name="android:background">#000</item>
        <item name="android:textColor">#586eea</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textColorPrimary">#586eea</item>
        <item name="android:colorAccent" tools:targetApi="lollipop">#586eea</item>
    </style>

但我的AlertDialog 背景有问题,它是黑色,所以复选框项目看起来不可见

如何使复选框看起来像这样:

提前致谢

【问题讨论】:

标签: android android-alertdialog android-styles android-checkbox


【解决方案1】:

尝试为您的复选框设置自定义主题。

在您的 styles.xml

中添加样式
<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar">
    <item name="colorControlNormal">#000</item>   <!-- normal border color  -->
    <item name="colorControlActivated">#000</item> <!-- activated color  -->
    <item name="android:textColor">#FFFF3F3C</item> <!-- text color -->
</style>

并将此样式设置为复选框的主题,如下所示:

<CheckBox android:id="@+id/check_agree"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_margin="10dp"
          android:text="I agree"
          android:theme="@style/MyCheckBox"/>   <!-- here apply your checkbox style -->

【讨论】:

    【解决方案2】:

    <CheckBox
      ...
      android:buttonTint="@color/tint_color" />

    minSdkVersion 是 21+ 使用 android:buttonTint 属性来更新复选框的颜色:

    【讨论】:

    • 谢谢,但我没有自定义对话框来执行此操作
    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2014-06-26
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2021-07-05
    相关资源
    最近更新 更多