DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker添加OnDateChangedListener监听器。
示例:
一、全局模式
1、布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <DatePicker
android:id="@+id/id_datePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>
2、activity
package base_ui; import java.util.Calendar; import com.example.allcode.R; import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener; public class Ui_DatePicker extends Activity{
private DatePicker datapicker;
private Calendar cal;//显示当前日期
private int year;
private int month;
private int day;
private int hour;
private int minute; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ui_datepickerdialog);
datapicker = (DatePicker) findViewById(R.id.id_datePicker1);
//获取日历的对象
cal=Calendar.getInstance();
//获取年月日时分秒信息
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH)+;//注意点 ,要加一
day = cal.get(Calendar.DAY_OF_MONTH);
hour = cal.get(Calendar.HOUR_OF_DAY);
minute = cal.get(Calendar.MINUTE); setTitle("选择时间:"+year+"年-"+month+"月-"+day+"日 "+hour+"时-"+minute+"分"); //datepicker
datapicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() { @Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub
month++;//注意点。要加一
setTitle("当前时间:"+year+"年-"+month+"月-"+day+"日 "+hour+"时-"+minute+"分");
}
});
}
}
效果图:
二、对话框模式
对应上述示例42--51行代码
new DatePickerDialog(this, new OnDateSetListener() { @Override
public void onDateSet(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub
setTitle("当前时间:"+year+"年-"+month+"月-"+day+"日 "+hour+"时-"+minute+"分");
}
}, year, cal.get(Calendar.MONTH), day).show(); //后三个参数相当于初始化
效果图: