一、结构
public class DatePicker extends FrameLayout
java.lang.Object
android.view.ViewGroup
android.widget.FrameLayout
android.widget.DatePicker
二、概述
一个选择年月日的日历布局视图。对于对话框样式的日历视图,参见DatePickerDialog
.
三、公共方法
public int getDayOfMonth ()
获取选择的天数
public int getMonth ()
获取选择的月份。(注意:返回数值为0..11,需要自己+1来显示)
public int getYear ()
获取选择的年份
public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
初始化状态。(译者注:初始化年月日)
参数
year 初始年(译者注:注意使用new Date()初始化年时,需要+1900,如下:date.getYear() + 1900)
monthOfYear 初始月。
dayOfMonth 初始日。
onDateChangedListener 日期改变时通知用户的事件监听,可以为空(null)。
public void setEnabled (boolean enabled)
设置视图的启用状态。该启用状态随子类的不同而有不同的解释。
参数
enabled 设置为true表示启动视图,反之禁用。
public void updateDate (int year, int monthOfYear, int dayOfMonth)
更新日期
四、受保护方法
protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container)
重写使我们能够完全控制这小部件的保存或恢复。(译者注:此处直接调用了父类的ViewGroup. dispatchThawSelfOnly方法)
参数
container SparseArray 持有保存以前的状态。The SparseArray which holds previously saved state.
protected void onRestoreInstanceState (Parcelable state)
允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。
参数
state The frozen state that had previously been returned by onSaveInstanceState().
返回以前调用onSaveInstanceState()保存下来的状态。
protected Parcelable onSaveInstanceState ()
允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。
你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。
返回值
返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null。
五、补充
5.1 如果只想显示年月或者是月日,可以取巧用android:layout_marginLeft属性控制显示隐藏控件一部分。
5.2 如果用Date初始化的时候,需要注意年的问题:
dpDate.init(date.getYear() + 1900 , date.getMonth(), 1 , null );
代码说明:dpDate为DatePicker控件。
5.3 相关文章链接
日期選擇器(DatePicker)和時間選擇器(TimePicker)
Android中动态输入日期与时间-DatePicker与TimePicker应用
本文转自博客园农民伯伯的博客,原文链接:Android 中文 API (20) —— DatePicker,如需转载请自行联系原博主。