Android kitkat(Api 19)造型

时间:2016-01-14 08:20:32

标签: android android-studio android-datepicker datepickerdialog

我正在尝试在API 19(Android 4.4 Kitkat)中更改DatePickerDialog的颜色(请参见下图)。

Picture of the 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" />

0 个答案:

没有答案