我正在尝试通过 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
背景存在问题,它为黑色,因此复选框项看起来不可见
如何使复选框如下所示:
在此先感谢
答案 0 :(得分:0)
尝试将自定义主题设置为您的复选框。
在您的 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 -->
答案 1 :(得分:0)
mouse.Listener
minSdkVersion是21岁以上,请使用android:buttonTint属性更新复选框的颜色: