Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-从DatePickerDialog更改线条颜色_Java_Android_Datepicker_Themes - Fatal编程技术网

Java Android-从DatePickerDialog更改线条颜色

Java Android-从DatePickerDialog更改线条颜色,java,android,datepicker,themes,Java,Android,Datepicker,Themes,我使用Theme.Holo.Light.Dialog.NoActionBar.MinWidth作为我的DatePickerDialog,但我想更改蓝色,以便将其改为红色 我成功地更改了文本的颜色,但我没有找到如何更改行的颜色 我尝试了很多东西,这是我目前的代码: <style name="DialogTheme" parent="android:Theme.Holo.Light.Dialog.NoActionBar.MinWidth"> <item name=

我使用
Theme.Holo.Light.Dialog.NoActionBar.MinWidth
作为我的
DatePickerDialog
,但我想更改蓝色,以便将其改为红色

我成功地更改了文本的颜色,但我没有找到如何更改行的颜色

我尝试了很多东西,这是我目前的代码:

<style name="DialogTheme" parent="android:Theme.Holo.Light.Dialog.NoActionBar.MinWidth">
        <item name="colorAccent">@color/smoothRed</item>
        <item name="colorPrimary">@color/smoothRed</item>
        <item name="android:textColor">@color/smoothRed</item>
        <item name="textColor">@color/smoothRed</item>
        <item name="android:background">@null</item>
        <item name="android:textColorPrimary">@color/colorPrimary</item>
    </style>

@颜色/平滑红
@颜色/平滑红
@颜色/平滑红
@颜色/平滑红
@空的
@颜色/原色

您可以尝试此解决方案。对我有用

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int day = calendar.get(Calendar.DAY_OF_MONTH);


    DatePickerDialog datepickerdialog = new DatePickerDialog(this,
            AlertDialog.THEME_HOLO_DARK,this,year,month,day);

    colorizeDatePicker(datepickerdialog.getDatePicker());

    datepickerdialog.show();


}


    public static void colorizeDatePicker(DatePicker datePicker) {
        Resources system = Resources.getSystem();
        int dayId = system.getIdentifier("day", "id", "android");
        int monthId = system.getIdentifier("month", "id", "android");
        int yearId = system.getIdentifier("year", "id", "android");

        NumberPicker dayPicker = (NumberPicker) datePicker.findViewById(dayId);
        NumberPicker monthPicker = (NumberPicker) datePicker.findViewById(monthId);
        NumberPicker yearPicker = (NumberPicker) datePicker.findViewById(yearId);

        setDividerColor(dayPicker);
        setDividerColor(monthPicker);
        setDividerColor(yearPicker);
    }

    private static void setDividerColor(NumberPicker picker) {
        if (picker == null)
            return;

        final int count = picker.getChildCount();
        for (int i = 0; i < count; i++) {
            try {
                Field dividerField = picker.getClass().getDeclaredField("mSelectionDivider");
                dividerField.setAccessible(true);
                ColorDrawable colorDrawable = new ColorDrawable(picker.getResources().getColor(R.color.colorAccent));
                dividerField.set(picker, colorDrawable);
                picker.invalidate();
            } catch (Exception e) {
                Log.w("setDividerColor", e);
            }
        }

}

@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

}
}
public类MainActivity扩展AppCompatActivity实现DatePickerDialog.OnDateSetListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终日历=Calendar.getInstance();
int year=calendar.get(calendar.year);
int month=calendar.get(calendar.month);
int day=calendar.get(calendar.day/u月);
DatePickerDialog DatePickerDialog=新的DatePickerDialog(此,
AlertDialog.THEME_HOLO_DARK,this,year,month,day);
colorizeDatePicker(datepickerdialog.getDatePicker());
datepickerdialog.show();
}
公共静态void colorizeDatePicker(日期选择器日期选择器){
Resources system=Resources.getSystem();
int dayId=system.getIdentifier(“day”、“id”、“android”);
int monthId=system.getIdentifier(“月”、“id”、“安卓”);
int yearId=system.getIdentifier(“年”、“id”、“安卓”);
NumberPicker dayPicker=(NumberPicker)datePicker.findViewById(dayId);
NumberPicker monthPicker=(NumberPicker)datePicker.findViewById(monthId);
NumberPicker yearPicker=(NumberPicker)datePicker.findViewById(yearId);
setDividerColor(日选择器);
setDividerColor(monthPicker);
setDividerColor(yearPicker);
}
专用静态void setDividerColor(NumberPicker选择器){
if(选择器==null)
返回;
final int count=picker.getChildCount();
for(int i=0;i
您的原色是什么?它是红色,与Smoothred的颜色完全相同