1

Android 3.2 と Android 4.0.3 でコードを実行すると、異なる日付ピッカーが表示されます.最初の画像のように日付ピッカーをホイーラーとして使用したい..2.3.3 が古いピッカーを示していることは知っていますが、わかりません3.2で新しいものを提供している4.0.3で古いものを取得しているのはなぜですか。ナンバーピッカーでも同じことが起こりました。

ここに私のコードがあります:

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        mYear = year;
        mMonth = monthOfYear;
        mDay = dayOfMonth;
        if (picker == 1) {
            final long lDate = mDay;
            dateStart.set(Calendar.YEAR, mYear);
            dateStart.set(Calendar.MONTH, mMonth);
            dateStart.set(Calendar.DATE, mDay);
            Log.d("startdate", "" + dateStart);
            if (lDate != -1) {
                UpdateStartDateTimeView();

                return;
            }

        }


        updateDisplay();
    }
};

これは私が3.2で得たものです これは私が4.0.3で得たものです

4

3 に答える 3

1

ネイティブ ピッカーを使用すると、Android は現在のバージョンに対応するものを自動的に選択します。カスタム ダイアログを作成することによってのみ、Android のバージョンに関係なく、固有のダイアログが表示されるようにすることができます。したがって、一意のピッカーがカスタム ピッカーを設計する価値があるかどうかを確認する必要があります。

于 2013-02-06T12:06:39.910 に答える
0

DatePickerDialog には、テーマを受け入れるコンストラクターがあります

DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

コードを次のように更新するだけです

ライトホロテーマ用

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

また

ダークホロテーマ用

DatePickerDialog datePickerDialog = new DatePickerDialog(this,
            android.R.style.Theme_Holo__Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay);
于 2013-08-19T14:38:43.383 に答える