![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.example.flexd6; 2 3 import java.util.Calendar; 4 import java.util.Date; 5 import java.util.Locale; 6 7 import android.os.Bundle; 8 import android.app.Activity; 9 import android.app.DatePickerDialog; 10 import android.app.DatePickerDialog.OnDateSetListener; 11 import android.app.TimePickerDialog; 12 import android.app.TimePickerDialog.OnTimeSetListener; 13 import android.view.Menu; 14 import android.view.View; 15 import android.view.View.OnClickListener; 16 import android.widget.Button; 17 import android.widget.DatePicker; 18 import android.widget.DatePicker.OnDateChangedListener; 19 import android.widget.TextView; 20 import android.widget.TimePicker; 21 import android.widget.TimePicker.OnTimeChangedListener; 22 23 /** 24 * 1.DatePicker和TimePicker的监听事件,触发后在TextView显示日期时间 25 * 2.点击Button弹出DatePickerDialog和TimePickerDialog 26 */ 27 public class MainActivity extends Activity { 28 //Widget 29 private DatePicker dp1; 30 private TimePicker tp1; 31 private TextView tv1; 32 private Button bt1; 33 private Button bt2; 34 //Time 35 private int year; 36 private int month; 37 private int day; 38 private int hour; 39 private int minute; 40 private int second; 41 private Calendar calendar = Calendar.getInstance(Locale.CHINA); 42 43 @Override 44 protected void onCreate(Bundle savedInstanceState) { 45 super.onCreate(savedInstanceState); 46 setContentView(R.layout.activity_main); 47 48 //Widget 49 dp1 = (DatePicker)findViewById(R.id.dp1); 50 tp1 = (TimePicker)findViewById(R.id.tp1); 51 tv1 = (TextView)findViewById(R.id.tv1); 52 bt1 = (Button)findViewById(R.id.bt1); 53 bt2 = (Button)findViewById(R.id.bt2); 54 55 //Listener 56 dp1.init(year, month, day, onDateChangedListener);//init 57 tp1.setOnTimeChangedListener(onTimeChangedListener); 58 tp1.setIs24HourView(true);//24小时制 59 60 bt1.setOnClickListener(datePickerDialogListener); 61 bt1.setText("DatePickerDialog"); 62 bt2.setOnClickListener(timePickerDialogListener); 63 bt2.setText("TimePickerDialog"); 64 } 65 66 /** 67 * OnDateChangedListener 68 */ 69 OnDateChangedListener onDateChangedListener = new OnDateChangedListener() { 70 71 @Override 72 public void onDateChanged(DatePicker view, int year, int monthOfYear, 73 int dayOfMonth) { 74 MainActivity.this.year = year; 75 MainActivity.this.month = monthOfYear + 1;//monthOfYear 0开始 76 MainActivity.this.day = dayOfMonth; 77 showTime(); 78 } 79 }; 80 81 /** 82 * OnTimeChangedListener 83 */ 84 OnTimeChangedListener onTimeChangedListener = new OnTimeChangedListener() { 85 86 @Override 87 public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 88 MainActivity.this.hour = hourOfDay; 89 MainActivity.this.minute = minute; 90 showTime(); 91 } 92 }; 93 94 /** 95 * datePickerDialogListener 96 */ 97 View.OnClickListener datePickerDialogListener = new OnClickListener(){ 98 99 @Override 100 public void onClick(View v) { 101 //Calendar Init 102 calendar.setTime(new Date()); 103 //calendar.setTimeInMillis(System.currentTimeMillis()); 104 105 new DatePickerDialog(MainActivity.this, new OnDateSetListener() { 106 @Override 107 public void onDateSet(DatePicker view, int year, int monthOfYear, 108 int dayOfMonth) { 109 MainActivity.this.year = year; 110 MainActivity.this.month = monthOfYear + 1;//monthOfYear 0开始 111 MainActivity.this.day = dayOfMonth; 112 showTime(); 113 } 114 }, year, calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 115 116 } 117 }; 118 119 /** 120 * timePickerDialogListener 121 */ 122 View.OnClickListener timePickerDialogListener = new OnClickListener() { 123 124 @Override 125 public void onClick(View v) { 126 new TimePickerDialog(MainActivity.this, new OnTimeSetListener() { 127 128 @Override 129 public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 130 MainActivity.this.hour = hourOfDay; 131 MainActivity.this.minute = minute; 132 showTime(); 133 } 134 }, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();//is24HourView 135 } 136 }; 137 138 /** 139 * TextView展示时间 140 */ 141 private void showTime(){ 142 tv1.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute); 143 } 144 145 @Override 146 public boolean onCreateOptionsMenu(Menu menu) { 147 // Inflate the menu; this adds items to the action bar if it is present. 148 getMenuInflater().inflate(R.menu.activity_main, menu); 149 return true; 150 } 151 152 }