標籤:
DatePicker繼承自FrameLayout類,日期選擇控制項的主要功能是向使用者提供包含年、月、日的日期資料並允許使用者對其修改。如果要捕獲使用者修改日期選擇控制項中的資料事件,需要為DatePicker添加OnDateChangedListener監聽器。
樣本:
一、全域模式
1、布局檔案
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <DatePicker 8 android:id="@+id/id_datePicker1" 9 android:layout_width="wrap_content"10 android:layout_height="wrap_content" />11 12 </LinearLayout>
2、activity
1 package base_ui; 2 3 import java.util.Calendar; 4 5 import com.example.allcode.R; 6 7 import android.app.Activity; 8 import android.app.DatePickerDialog; 9 import android.app.DatePickerDialog.OnDateSetListener;10 import android.os.Bundle;11 import android.widget.DatePicker;12 import android.widget.DatePicker.OnDateChangedListener;13 14 public class Ui_DatePicker extends Activity{15 private DatePicker datapicker;16 private Calendar cal;//顯示當前日期17 private int year;18 private int month;19 private int day;20 private int hour;21 private int minute;22 23 24 25 @Override26 protected void onCreate(Bundle savedInstanceState) {27 // TODO Auto-generated method stub28 super.onCreate(savedInstanceState);29 setContentView(R.layout.ui_datepickerdialog);30 datapicker = (DatePicker) findViewById(R.id.id_datePicker1);31 //擷取日曆的對象32 cal=Calendar.getInstance();33 //擷取年月日時分秒資訊34 year = cal.get(Calendar.YEAR);35 month = cal.get(Calendar.MONTH)+1;//注意點 ,要加一36 day = cal.get(Calendar.DAY_OF_MONTH);37 hour = cal.get(Calendar.HOUR_OF_DAY);38 minute = cal.get(Calendar.MINUTE);39 40 setTitle("選擇時間:"+year+"年-"+month+"月-"+day+"日 "+hour+"時-"+minute+"分");41 42 //datepicker43 datapicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {44 45 @Override46 public void onDateChanged(DatePicker view, int year, int month, int day) {47 // TODO Auto-generated method stub48 month++;//注意點。要加一49 setTitle("目前時間:"+year+"年-"+month+"月-"+day+"日 "+hour+"時-"+minute+"分");50 }51 });52 }53 }
:
二、對話方塊模式
對應上述樣本42--51行代碼
1 new DatePickerDialog(this, new OnDateSetListener() {2 3 @Override4 public void onDateSet(DatePicker view, int year, int month, int day) {5 // TODO Auto-generated method stub6 setTitle("目前時間:"+year+"年-"+month+"月-"+day+"日 "+hour+"時-"+minute+"分");7 }8 }, year, cal.get(Calendar.MONTH), day).show(); //後三個參數相當於初始化
:
安卓開發_淺談DatePicker(日期選取器)