Изменить цвет флажка AlertDialog с MultiChoiceItems - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь изменить цвет AlertDialog с помощью MultiChoiceItems

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 фоном, он ЧЕРНЫЙ , поэтому элементы-флажки выглядят невидимыми

enter image description here

как сделать так, чтобы флажок выглядел так:

enter image description here

Большое спасибо заранее

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

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

minSdkVersion равен 21+. Используйте атрибут android: buttonTint для обновления цвета флажка:

0 голосов
/ 03 июня 2019

Попробуйте установить собственную тему для вашего флажка.

Добавьте стиль в свой 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 -->
...