<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<DatePicker
android:id="@+id/dataPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
DatePicker中的点击改变日期事件是用:
datePicker.init(mYear, mMonth, mDay,OnDateChangedListener)
public class DatePickerActivity extends Activity {
private DatePicker datePicker;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datePicker=(DatePicker)findViewById(R.id.dataPicker);
final Calendar calendar=Calendar.getInstance();
int mYear=calendar.get(Calendar.YEAR);
int mMonth=calendar.get(Calendar.MONTH)+1;
int mDay=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(mYear, mMonth, mDay,new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Toast.makeText(DatePickerActivity.this, year+"-"+monthOfYear+"-"+dayOfMonth, Toast.LENGTH_LONG).show();
}
});
}
}
DatePickerDialog:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="20sp"
android:text=""
/>
<Button
android:id="@+id/btnPickDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="修改时间"
/>
</LinearLayout>
public class DatePickerActivity extends Activity {
protected static final int DATA_DIALOG_ID = 0;
private int mYear;
private int mMonth;
private int mDay;
private Button btnPickDate;
private TextView tv01;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnPickDate=(Button)findViewById(R.id.btnPickDate);
btnPickDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATA_DIALOG_ID);
//activity下的 showDialog方法,点击按钮时会调用onCreateDialog方法
}
});
final Calendar calendar=Calendar.getInstance();
mYear=calendar.get(Calendar.YEAR);
mMonth=calendar.get(Calendar.MONTH)+1;
mDay=calendar.get(Calendar.DAY_OF_MONTH);
}
@Override
protected Dialog onCreateDialog(int id) {
switch(id){
case DATA_DIALOG_ID: //根据用户传递的id来判断
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
}
return null;
}
//点击设置
private DatePickerDialog.OnDateSetListener mDateSetListener=new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear=year;
mMonth=monthOfYear;
mDay=dayOfMonth;
updateDisplay();//显示到textview中
}
};
private void updateDisplay(){
tv01=(TextView)findViewById(R.id.tv1);
tv01.setText(new StringBuffer().append("时间: ").append(mYear).append("-").append(mMonth+1).append("-").append(mDay));
}
}
TimePickerDialog:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" />
<Button
android:id="@+id/btnTimeDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置时间"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
public class TimePickerDialogActivity extends Activity {
protected static final int TIME_DIALOG_ID = 0;
private Button btnTimeDialog;
private TextView tv01;
private int mHour;
private int mMinnte;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv01=(TextView) findViewById(R.id.tv01);
btnTimeDialog=(Button) findViewById(R.id.btnTimeDialog);
btnTimeDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
final Calendar calendar=Calendar.getInstance();
mHour=calendar.get(Calendar.HOUR_OF_DAY);
mMinnte=calendar.get(Calendar.MINUTE);
updateDisplay();
}
@Override
protected Dialog onCreateDialog(int id) {
switch(id){
case TIME_DIALOG_ID:
return new TimePickerDialog(this,mTimeSetListener,mHour,mMinnte,true);//true表示24小时制
}
return null;
}
private TimePickerDialog.OnTimeSetListener mTimeSetListener=new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour=hourOfDay;
mMinnte=minute;
updateDisplay();
}
};
private void updateDisplay(){
tv01.setText(new StringBuffer().append("时间: ").append(pad(mHour)).append(":").append(pad(mMinnte)));
}
private static String pad(int c){
if(c>=10){
return String.valueOf(c);
}
else{
return "0"+String.valueOf(c);
}
}
}