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 @Override
26 protected void onCreate(Bundle savedInstanceState) {
27 // TODO Auto-generated method stub
28 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 //datepicker
43 datapicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {
44
45 @Override
46 public void onDateChanged(DatePicker view, int year, int month, int day) {
47 // TODO Auto-generated method stub
48 month++;//注意点。要加一
49 setTitle("当前时间:"+year+"年-"+month+"月-"+day+"日 "+hour+"时-"+minute+"分");
50 }
51 });
52 }
53 }
效果图:
二、对话框模式
对应上述示例42--51行代码
1 new DatePickerDialog(this, new OnDateSetListener() {
2
3 @Override
4 public void onDateSet(DatePicker view, int year, int month, int day) {
5 // TODO Auto-generated method stub
6 setTitle("当前时间:"+year+"年-"+month+"月-"+day+"日 "+hour+"时-"+minute+"分");
7 }
8 }, year, cal.get(Calendar.MONTH), day).show(); //后三个参数相当于初始化
效果图: