正文
一、結構
public class DatePicker extends FrameLayout
java.lang.Object
android.view.ViewGroup
android.widget.FrameLayout
android.widget.DatePicker
二、概述
三、公共方法
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初始化的時候,需要注意年的問題:
Date date = new Date();
dpDate.init(date.getYear() + 1900, date.getMonth(), 1, null);
代碼說明:dpDate為DatePicker控件。
本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582672,如需轉載請自行聯系原作者