AppCompatを使用して、5.0以前のアプリケーションに新しいAndroid 5.0 Material Design Datepickerを追加しようとしています。
compile "com.Android.support:appcompat-v7:21.0.0"
build.gradleファイルに追加し、テーマを次のように更新しました。
<?xml version="1.0" encoding="utf-8"?>
<style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="Android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
ただし、Datepickerは次のようになります。
そしてこれは好きではありません:
5.0以前のデバイスで新しいdatepickerを動作させる方法を教えてもらえますか?
前もって感謝します。
更新:
Jfcartierが指摘したように、 MaterialDateTimePicker もあります。それはおそらく、themable theable APIを備えているため、以下のソリューションよりも優れたソリューションです。
Android-betterpickers ライブラリを試すことができます。希望するウィジェットのように見えるCalendarDatePickerDialog
ウィジェットがあります。明るいテーマと暗いテーマを提供しますが、色をカスタマイズするには、ライブラリプロジェクトとして追加し、コードを自分で変更する必要があります。
ライブラリをプロジェクトに追加すると、使い方は簡単です。
// Create date picker listener.
CalendarDatePickerDialog.OnDateSetListener dateSetListener = new CalendarDatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
// Set date from user input.
Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, 9);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.YEAR, year);
date.set(Calendar.MONTH, monthOfYear);
date.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// Do as you please with the date.
}
};
// Create dismiss listener.
CalendarDatePickerDialog.OnDialogDismissListener dismissListener = new CalendarDatePickerDialog.OnDialogDismissListener() {
@Override
public void onDialogDismiss(DialogInterface dialoginterface) {
// Do something when the user dismisses the dialog.
}
};
// Show date picker dialog.
CalendarDatePickerDialog dialog = new CalendarDatePickerDialog();
dialog.setOnDateSetListener(dateSetListener);
dialog.setOnDismissListener(dismissListener);
dialog.setThemeDark(false);
dialog.show(getSupportFragmentManager(), "DATE_PICKER_TAG");
最終結果はこのようになります(品質が悪いためごめん)。
this libraryが気に入りました。 Flavien Laurent Date and Time Picker のクローンであり、いくつかの改良が加えられています。どちらも Android 4.3 + のGoogleの公式の日付と時刻のピッカーに基づいていますが、Android 2.1+。