我正在尝试在API 19(Android 4.4 Kitkat)中更改DatePickerDialog的颜色(请参见下图)。
我在点击EditText框时创建了DatePickerDialog,因此我没有XML文件,我可以在其中设置DatePickerDialog的属性。
我尝试使用下面的代码设置样式,但这不起作用,因为最低要求是API Version 21。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>
</style>
<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
<item name="android:colorAccent">@color/ColorPrimaryDark</item>
</style>
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
<item name="android:headerBackground">@color/ColorPrimaryDark</item>
</style>
有没有人,有解决这个问题的方法?我的问题只出现在21以下的api中,因为我对21以上的api级别有不同的风格。
问候!
设置DatePickerDialog的代码:
private void setDateTimeField() {
Date.setOnClickListener(this);
Calendar newCalendar = Calendar.getInstance();
DateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
if(view.isShown())
{
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
String dob_var = dateFormat.format(newDate.getTime());
String date = dob_var.replaceAll("([A-Z])\\w+ ", "");
String dayOfWeek = Variables.getDayOfWeek(date);
Date.setText(dayOfWeek.toUpperCase() + " " + date);
Variables.dateToGet = date;
weekNumber.setText(variables.getWeekNumber(date));
lv.setAdapter(null);
results.clear();
new RetrieveFeedTask().execute();
adapter = new MyCustomBaseAdapter(view.getContext(), results);
lv.setAdapter(adapter);
}
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
}
XML文件:
<resources>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/MenuBar</item>
<item name="colorPrimaryDark">@color/ShadowMenuBar</item>
<item name="colorControlNormal">@color/ColorPrimaryDark</item>
<item name="colorControlActivated">@color/ColorPrimaryDark</item>
<item name="colorControlHighlight">@color/ColorPrimaryDark</item>
<item name="colorAccent">@color/ColorPrimaryDark</item>
<!--<item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>-->
</style>
<!--<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
<item name="android:colorAccent">@color/ColorPrimaryDark</item>
</style>
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
<item name="android:headerBackground">@color/ColorPrimaryDark</item>
</style>-->
Layoutfile:
<?xml version="1.0" encoding="utf-8"?>
<EditText
android:id="@+id/date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="01-01-2016"
android:hint="Date"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" />
<ListView
android:id="@+id/listItemSkema"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadeScrollbars="false"
android:layout_above="@+id/previousDay"
android:layout_below="@+id/date"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true">
</ListView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/previousDay"
android:id="@+id/previousDay"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/weekNumber"
android:text="Uge"
android:textColor="@color/black"
android:textSize="35sp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nextDay"
android:id="@+id/nextDay"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/listItemSkema"
android:layout_alignEnd="@+id/listItemSkema" />