java – 在API 21中以编程方式隐藏DatePicker中的Calendarview

我遇到了与此线程相同的问题:Android Material Design Inline Datepicker issue,但我没有使用XML布局,而是以编程方式构建DatePicker.

这是我正在使用但不起作用的代码

DatePicker dpView = new DatePicker(ctx);
dpView.setCalendarViewShown(false);
dpView.setSpinnersShown(true);

我怎样才能让它发挥作用?

解决方法:

Android 5.0中的问题是确定是否使用日历的“模式”是在构造时读取的,而在代码中,您无法在构建之前设置模式,因此为时已晚. (来源:DatePicker Source Code)

我的解决方案是创建我自己的可重用DatePicker布局,指定“无日历”模式,并以编程方式构建我的DateTimes,而不是Android的默认布局.

底线是,创建一个“DatePicker.axml”文件,将其放在resources文件夹中,并将以下内容粘贴为其内容:

<?xml version =“1.0”encoding =“utf-8”?>

<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:calendarViewShown="false"
          android:datePickerMode="spinner"/>

并在代码中声明它,如下所示:

LayoutInflater inflater = LayoutInflater.From( Activity );
DatePicker datePicker = (DatePicker)inflater.Inflate( Resource.Layout.DatePicker, null );
上一篇:java – DatePickerDialog错误地强制执行1970年1月1日的最小日期


下一篇:javascript – 带时隙的jQuery日历选择