“更改分隔符颜色”Android日期选择器对话框

“更改分隔符颜色”Android日期选择器对话框,android,colors,datepicker,divider,Android,Colors,Datepicker,Divider,我想更改日期选择器对话框的分隔符颜色 我创建了以下样式: <style name="dialog_custom" parent="@android:style/Widget.DatePicker"> <item name="android:divider">@drawable/dialog_divider</item> </style> @可绘制/对话框分割器 并创建可绘制的样式 结果是 分隔符不改变颜色,对话框采用内

我想更改日期选择器对话框的分隔符颜色

我创建了以下样式:

<style name="dialog_custom" parent="@android:style/Widget.DatePicker">
        <item name="android:divider">@drawable/dialog_divider</item>
    </style>

@可绘制/对话框分割器
并创建可绘制的样式

结果是


分隔符不改变颜色,对话框采用内容大小。

您可以使用主题进行此操作。检查此问题的已接受答案。我想这对你会有帮助的

更新

在应用程序中展开
res
文件夹,然后展开
values
文件夹。然后在
values
文件夹中创建
themes.xml
文件。然后用下面的代码替换
themes.xml
文件中的所有代码

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="MYTheme" parent="@android:style/Theme">

       <item name="android:divider">@drawable/dialog_divider</item>

    </style>

</resources>

@可绘制/对话框分割器

然后打开您的
AndroidManifest.xml
文件。然后找到android:theme,并用android:theme=“@style/MYTheme”

回复。这是我的解决方案,用于更改数字图标、时间选择器、日期选择器和时间选择器对话框中的分隔符颜色。对于DatePickerDialog,可以调用DatePickerDialog.getDatePicker()


}

当我执行此操作时,会出现以下错误:错误:错误:找不到与给定名称匹配的资源:attr'android:\u DEFAULT\u BASE\u COLOR\u 1。您是否在资源中定义了
\u DEFAULT\u BASE\u COLOR\u 1
?抱歉,但是…什么资源?我如何定义它?我尝试用它生成所有资源。但是分割线的默认颜色没有改变。很抱歉,我再次遇到这个错误。请参阅链接
public class NumberPickerStylingUtils {

private static final Drawable PICKER_DIVIDER_DRAWABLE = //Place your drawable here

private NumberPickerStylingUtils() {}

public static void applyStyling(TimePickerDialog timePickerDialog) {
    try {
        Field field = TimePickerDialog.class.getDeclaredField("mTimePicker");
        field.setAccessible(true);
        applyStyling((TimePicker) field.get(timePickerDialog));
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}

public static void applyStyling(TimePicker timePicker) {
    try {
        Field fields[] = TimePicker.class.getDeclaredFields();
        for (Field field : fields) {
            if (field.getType().equals(NumberPicker.class)) {
                field.setAccessible(true);
                applyStyling((NumberPicker) field.get(timePicker));
            }
        }
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}

public static void applyStyling(DatePicker datePicker) {
    try {
        Field fields[] = DatePicker.class.getDeclaredFields();
        for (Field field : fields) {
            if (field.getType().equals(NumberPicker.class)) {
                field.setAccessible(true);
                applyStyling((NumberPicker) field.get(datePicker));
            }
        }
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}

public static void applyStyling(NumberPicker numberPicker) {
    try {
        Field field = NumberPicker.class.getDeclaredField("mSelectionDivider");
        field.setAccessible(true);
        field.set(numberPicker, PICKER_DIVIDER_DRAWABLE));
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}