把这段代码添加到style.xml
中。
<style name="date_picker_theme" parent="@android:style/Widget.DatePicker">
然后您应该像这样为日期选择器应用样式:
<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/datePicker"
style="@style/date_picker_theme" />
使用以下代码创建样式
<style name="DatePicker" parent="@android:style/Theme.Holo.Light">
<item name="android:datePickerStyle">@android:style/Widget.DatePicker</item>
</style>
<DatePicker
android:theme="@style/DatePicker"
android:id="@+id/fragment_date_picker_control"
android:datePickerMode="spinner"
android:spinnersShown="true"
android:calendarViewShown="false"
android:layout_marginLeft="@dimen/margin_normal"
android:layout_marginRight="@dimen/margin_normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
链接: http://yogeshkalwar.blogspot.in/2017/08/custom-spinner-datepicker-supporting-n70.html
style.xml
中添加以下内容或修改现有内容:<resources>
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:datePickerStyle">@style/MyDatePicker</item>
</style>
...
</resources>
定义您定制的DatePicker样式,可以在style.xml
或单独的文件中进行,例如:
<resources>
<style name="MyDatePicker" parent="@android:style/Widget.DatePicker">
<item name="android:calendarViewShown">false</item>
<item name="android:datePickerMode">spinner</item>
</style>
</resources>
也许现在有点晚了,但你可以像这样通过编程来设置它。
将其应用于你的onClick
监听器中。
DatePickerDialog datePicker = new DatePickerDialog(
this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth,
datePickerListener,
cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH));
datePicker.setCancelable(false);
datePicker.setTitle("Select the date");
datePicker.show();
android.R.style.Theme_Holo_Light_Dialog_MinWidth
是创建你想要的样式。
希望对某些人有所帮助。
DatePickerDialog有一个方便的方法,可以设置所需的布局。
public DatePickerDialog(@NonNull Context context, @StyleRes int themeResId,
@Nullable OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) {
this(context, themeResId, listener, null, year, monthOfYear, dayOfMonth);
}
public static final int MODE_SPINNER = 1;
public static final int MODE_CALENDAR = 2;
datepickerDialog_object.getDatePicker().setSpinnersShown(true);
datepickerDialog_object.getDatePicker().setCalendarViewShown(false);
嗨,试试这个最简单的方法...
public void datePicker(final Context context, final EditText editText, final String type) {
Calendar calendar = Calendar.getInstance();
final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
DatePickerDialog datePickerDialog = new DatePickerDialog(context, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(android.widget.DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
newDate.set(year, monthOfYear, dayOfMonth);
editText.setText(dateFormatter.format(newDate.getTime())
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
// datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
datePickerDialog.show();
}
android
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/AppDarkBlue</item>
</style>