標籤:
DatePicker和DatePickerDialog的基本使用方法
1、什麼是DatePicker? 選擇日期的控制項。DatePicker dialog
建立一個DatePickerDialog--和別的控制項不一樣,不需要在XML檔案裡面拖出來
1、聲明一個監聽器,使用匿名內部類:
onDateSetListener,這個方法在點擊了上面圖片裡面的set之後就會被觸發。
DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { System.out.println(year + "-" monthOfYear + "-" dayOfMonth); } };
.這個點就說明,OnDateSetListener是介面,被聲明在DatePickerDialog這個類裡面的。 但是我們說過,抽象類別,介面這些有抽象函數,不能用new來聲明的,那這裡用匿名內部類就可以了?
OnDateSetListener()在這個建構函式後面緊接著一個大括弧,onDateSet方法就實現了OnDateSetListener()裡面的抽象方法,所以這個介面已經被實現了,就是在{}中間被實現的,所以就
可以new,但是實現介面需要一個類啊,這麼沒有類。Java編程裡面只有第0個月開始的。只有11個月。
2、複寫onCreateDialog(int id)方法:(建立一個dialog的時候,必須要通過onCreateDialog建立)
//當Activity建立一個Dialog的時候,就會調用這個方法 @Override protected Dialog onCreateDialog(int id) { switch (id){ case DATE_PICKER_ID: return new DatePickerDialog(this,onDateSetListener,2010,11,25); 產生一個新的DatePickerDialog對象,對象裡面需要onDateSetListenner } return null; }
3、使用的時候直接調用showDialog
showDialog(int id) ,把ID傳進去,就會調用onCreateDialog這個方法,就可以把dialog顯示出來了。
Dec是幾?這明顯是12月,所以月份是從0開始的。
為什麼月份是從0開始的,日期不是從0開始的?
Android--DatePicker和DatePickerDialog的基本使用方法