旧的datepicker显示在android 4.3中

时间:2014-08-05 10:02:41

标签: android datepicker android-dialog android-4.3-jelly-bean

我做了一个Android活动,我已经使用了android默认的datepicker对话框,我正在运行它我正在获取android版本的旧类型datepicker,因为我已经附在下面的图片中,我想要最新版本的日期选择器作为在第二个scree中显示,old datepicker in android 4.3

Android 4.3 datepicker actual

    DestAdapter adapter;
    public static final String[] MONTHS = { "Jan", "Feb", "Mar", "Apr", "May",
            "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };

    private Calendar cal;
    private int dy;
    private int month;
    private int year;
    int flag = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_book);
tv_from.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("deprecation")
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                flag = 1;
                showDialog(0);
            }
        });
}
@Override
    @Deprecated
    protected Dialog onCreateDialog(int id) {
        return new DatePickerDialog(this, datePickerListener, year, month, dy);
    }

    private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int selectedYear,
                int selectedMonth, int selectedDay) {
            if (flag == 1) {
                tv_from.setText(selectedYear + "/" + selectedMonth + "/"
                        + selectedDay);
            } else if (flag == 2) {
                tv_to.setText(selectedYear + "/" + selectedMonth + "/"
                        + selectedDay);
            }

        }
    };


}

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eps.blancatours"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".ui.SplashActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

2 个答案:

答案 0 :(得分:3)

进入清单文件,找到日期选择代码所在的活动名称 并使用android:theme代码

中的<activity>属性为该活动提供最新主题

你的代码是完美的没有错误或没有任何错误,你使用旧主题,这就是为什么它看起来像这样。现在只需将其更改为更新的主题,您将获得结果

新主题在某种意义上支持更新版本的主题,并以您想要的方式显示日期选择器 使用

Theme_Holo_Light_Dialog_NoActionBar in activity tab of manifest file

或者你可以将主题传递给日期选择器,有接受主题的日期选择器的构造函数

    DatePickerDialog dpd = new DatePickerDialog(this,
                android.R.style.Theme_Holo_Light_Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay);

答案 1 :(得分:1)

我得到了解决方案,实际上我已将我的活动主题设置如下,其他api级别不支持,

  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 

我已经改变了,得到了理想的解决方案......