天天看點

Android 中文 API (20) —— DatePicker

正文

  一、結構

    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,如需轉載請自行聯系原作者

繼續閱讀