【Android自學日記】使用DatePicker以及TimePicker顯示當前日期和時間


DatePicker

1.獲取一個日歷對象:

Calendar cal=Calendar.getInstance();

2.獲取當前日期及時間:

int year=cal.get(Calendar.YEAR);

int month=cal.get(Calendar.MONTH)+1;//特殊的是Calendar中月份從0開始計數,所以加1得到常規月份

int day=cal.get(Calendar.DAY_OF_MONTH);

int hour=cal.get(Calendar.HOUR_OF_DAY);

int minute=cal.get(Calendar.MINUTE_OF_HOUR);

setTitle(year+"-"+month+"-"+day+"-"+hour+":"+minute);

3.初始化datePicker

datePicker.init(year,month,day,new OnDateChangedListener()){

@Override

//監聽用到的方法

public void onDateChanged(DatePicker view,int year,int cal.get(Calendar.MONTH_OF_YEAR),int dayOfMonth){

//使標題上的日期能隨着選擇的改變而改變

setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);

}

}

使用java的工具類,獲取當前的年月日時分

月份是從0開始,所以獲取的時候要+1

日:使用day_of_month方法是獲取當前月的那天

時:使用hour_of_day方法是獲取當天的幾時

DatePickerDialog  以對話框的形式選擇日期

代碼:

new DataPickerDialog(this,new OnDateSetListener(){

@Override

public void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth){

setTitle(year+":"+(monthOfYear+1)+"-"+dayOfMonth);

}

},year,cal.get(Calendar.MONTH),day).show();

其中參數year,get(Calendar).MONTH,day相當於init方法中的初始化。

千萬別忘記寫.show()方法,否則不會顯示在頁面上。

TimePicker

TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker1);

//時間選擇器不需要手動初始化,默認初始化為當前的時間

timePicker.setOnTimeChangedListener(new OnTimeChangedListener()){

@Override

public void onTimeChanged(TimePicker view,int hourOfDay,int minute){

setTitle(hourOfDay+"-"+minute);

}

}

 

DatePicker日期選擇器,需要在初始化的時候(init)設置監聽OnDateChangeListener並實現監聽方法,TimePicker時間選擇器不需要初始化只需要設置監聽OnTimeChangedListener方法即可

TimePickerDailog

代碼:

  new TimePickerDialog(context,callBack,hourOfDay,minute,is24HourView()).show();

其中參數hourOfDay,minute需要自己定義,也就是說TimePickerDialog不會自行初始化時間,參數is24HourView為Boolean類型

sdk方法中的時間參數只有month,day會是這種形式monthOfYear,dayOfMonth,因為月數,日數依賴於后者

 

總結: 

  TimePickerDialog和TimePicker不同的是,它不用在布局文件中聲明,直接通過類就可以new出來。在Android中這種彈出式的UI一般都不用在布局文件中聲明,直接用類就可以搞定,一般要顯示他們都要顯示地調用show()方法,比如Toast這個類也是一樣。

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM