|  | 
 
| 
DatePickerDialog 与TimePickerDialog 应用 
 
 ①新建工程
 ②修改 main.xml 布局,添加两个按钮、一个 TextView
 <?xml version="1.0" encoding="utf-8"?>
 
 <AbsoluteLayout
 
 android:id="@+id/widget0"
 
 android:layout_width="fill_parent"
 
 android:layout_height="fill_parent"
 
 xmlns:android="http://schemas.android.com/apk/res/android">
 
 <Button
 
 android:id="@+id/show_DatePicker"
 
 android:layout_width="150px"
 
 android:layout_height="wrap_content"
 
 android:layout_x="10px"
 
 android:layout_y="10px" android:text="显示日期设置对话框"/>
 
 <Button
 
 android:id="@+id/show_TimePicker"
 
 android:layout_width="150px"
 
 android:layout_height="wrap_content"
 
 android:layout_x="10px"
 
 android:layout_y="70px" android:text="显示时间设置对话框"/>
 
 <TextView
 
 android:id="@+id/my_TextView"
 
 android:layout_width="228px"
 
 android:text="TextView"
 
 android:layout_x="10px"
 
 android:layout_y="180px"
 
 android:layout_height="45px"
 
 android:textSize="20px"/>
 
 </AbsoluteLayout>
 复制代码
 ③DatePickerDialog 的定义与初始化以及显示
 /* 定义 程序用到的UI元素对象:日历设置器对话框 */
 
 DatePickerDialog my_datePickerDialog;
 
 /*构造一个DatePickerDialog对象,第一个参数为Context、
 
 * 第二参数为日期修改事件处理监听器、后面为初始化的年月日*/
 
 my_datePickerDialog=new DatePickerDialog(Ex_Ctrl_15_B.this,
 
 myDateSetListener, my_Year, my_Month, my_Day);
 
 /*显示出日期设置对话框*/
 
 my_datePickerDialog.show();
 复制代码
 ④DatePickerDialog 的日期修改事件处理
 /*日期改变设置事件监听器*/
 
 private OnDateSetListener myDateSetListener=new OnDateSetListener(){
 
 @Override
 
 public void onDateSet(DatePicker view, int year, int monthOfYear,
 
 int dayOfMonth) {
 
 
 
 //
 
 
 
 TODO Auto-generated method stub
 
 
 
 /*日期改变设置事件处理*/
 
 }
 
 };
 复制代码
 ⑤TimePickerDialog 的定义与初始化以及显示
 /* 定义 程序用到的UI元素对象:时间设置器对话框*/
 
 TimePickerDialog my_timePickerDialog;
 
 /*构造一个TimePickerDialog对象,第一个参数为Context、
 
 *第二个参数为时间修改事件监听器、后面两个为初始化时间,
 
 *最后一个boolean类型设置是否为24小时制*/
 
 my_timePickerDialog=new TimePickerDialog(Ex_Ctrl_15_B.this,
 
 myTimeSetListener, my_Hour, my_Minute, false);
 
 /*显示出日期设置对话框*/
 
 my_timePickerDialog.show();
 复制代码
 ⑥TimePickerDialog 的时间修改事件处理
 /*时间改变设置事件监听器*/
 
 private OnTimeSetListener myTimeSetListener=new OnTimeSetListener(){
 
 @Override
 
 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
 
 // TODO Auto-generated method stub
 
 /*时间改变设置事件处理*/
 
 }
 
 };
 复制代码
 ⑦修改 mainActivity.java,实现动态显示修改的日期、时间
 package zyf.Ex_Ctrl_15_B;
 
 /*导入使用的包*/
 
 import java.util.Calendar;
 
 import java.util.Locale;
 
 import android.app.Activity;
 
 import android.app.DatePickerDialog;
 
 import android.app.TimePickerDialog;
 
 import android.app.DatePickerDialog.OnDateSetListener;
 
 import android.app.TimePickerDialog.OnTimeSetListener;
 
 import android.os.Bundle;
 
 import android.view.View;
 
 
 
 import
 
 import
 
 import
 
 import
 
 
 
 
 
 android.widget.Button;
 
 android.widget.DatePicker;
 
 android.widget.TextView;
 
 android.widget.TimePicker;
 
 
 
 
 
 
 
 public class Ex_Ctrl_15_B extends Activity implements Button.OnClickListener{
 
 /** Called when the activity is first created. */
 
 /* 定义时间变量:年、月、日、小时、分钟 */
 
 int my_Year;
 
 int my_Month;
 
 int my_Day;
 
 int my_Hour;
 
 int my_Minute;
 
 /* 定义 程序用到的UI元素对象:日历设置器对话框、时间设置器对话框、
 
 显示时间的TextView、按钮 */
 
 DatePickerDialog my_datePickerDialog;
 
 TimePickerDialog my_timePickerDialog;
 
 TextView showDate_Time;
 
 Button showDatePDialog;
 
 Button showTimePDialog;
 
 /* 定义日历对象,初始化时,用来获取当前时间 */
 
 Calendar my_Calendar;
 
 /*日期改变设置事件监听器*/
 
 private OnDateSetListener myDateSetListener=new OnDateSetListener(){
 
 @Override
 
 public void onDateSet(DatePicker view, int year,
 
 
 
 int monthOfYear,
 
 
 
 int dayOfMonth) {
 
 
 
 // TODO Auto-generated method stub
 
 /*把设置修改后的日期赋值给我的年、月、日变量*/
 
 my_Year=year;
 
 my_Month=monthOfYear;
 
 my_Day=dayOfMonth;
 
 /*显示设置后的日期*/
 
 loadDate_Time();
 
 }
 
 };
 
 /*时间改变设置事件监听器*/
 
 private OnTimeSetListener myTimeSetListener=new OnTimeSetListener(){
 
 @Override
 
 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
 
 // TODO Auto-generated method stub
 
 /*把设置修改后的时间赋值给我的时、分变量*/
 
 my_Hour=hourOfDay;
 
 my_Minute=minute;
 
 
 
 /*显示设置后的时间*/
 
 loadDate_Time();
 
 }
 
 };
 
 @Override
 
 public void onCreate(Bundle savedInstanceState) {
 
 /* 从Calendar抽象基类获得实例对象,并设置成中国时区 */
 
 my_Calendar = Calendar.getInstance(Locale.CHINA);
 
 /* 从日历对象中获取当前的:年、月、日、时、分 */
 
 my_Year = my_Calendar.get(Calendar.YEAR);
 
 my_Month = my_Calendar.get(Calendar.MONTH);
 
 my_Day = my_Calendar.get(Calendar.DAY_OF_MONTH);
 
 my_Hour = my_Calendar.get(Calendar.HOUR_OF_DAY);
 
 my_Minute = my_Calendar.get(Calendar.MINUTE);
 
 super.onCreate(savedInstanceState);
 
 setContentView(R.layout.main);
 
 /* findViewById()从XML中获取UI元素对象 */
 
 showDate_Time = (TextView) findViewById(R.id.my_TextView);
 
 showDatePDialog=(Button)findViewById(R.id.show_DatePicker);
 
 showTimePDialog=(Button)findViewById(R.id.show_TimePicker);
 
 /*显示当前时间*/
 
 loadDate_Time();
 
 /*为按钮添加点击事件监听器*/
 
 showDatePDialog.setOnClickListener(this);
 
 showTimePDialog.setOnClickListener(this);
 
 }
 
 /* 设置显示日期时间的方法 */
 
 private void loadDate_Time() {
 
 // TODO Auto-generated method stub
 
 showDate_Time.setText(new StringBuffer()
 
 .append(my_Year).append("/")
 
 .append(FormatString(my_Month + 1))
 
 .append("/").append(FormatString(my_Day))
 
 .append(" ").append(FormatString(my_Hour))
 
 .append(" : ").append(FormatString(my_Minute)));
 
 }
 
 /* 日期时间显示两位数的方法 */
 
 private String FormatString(int x) {
 
 String s = Integer.toString(x);
 
 if (s.length() == 1) {
 
 s = "0" + s;
 
 }
 
 return s;
 
 }
 
 
 
 @Override
 
 public void onClick(View v) {
 
 // TODO Auto-generated method stub
 
 switch (v.getId()) {
 
 case R.id.show_DatePicker:
 
 /*显示日期设置对话框的按钮点击事件处理*/{
 
 /*构造一个DatePickerDialog对象,第一个参数为Context、
 
 第二参数为日期修改事件处理监听器、后面为初始化的年月日*/
 
 my_datePickerDialog=new DatePickerDialog(Ex_Ctrl_15_B.this,
 
 myDateSetListener, my_Year, my_Month, my_Day);
 
 /*显示出日期设置对话框*/
 
 my_datePickerDialog.show();
 
 }
 
 break;
 
 case R.id.show_TimePicker:
 
 /*显示时间设置对话框的按钮点击事件处理*/{
 
 /*构造一个TimePickerDialog对象,第一个参数为Context、第二个参数为时间修改
 
 事件监听器、后面两个为初始化时间,最后一个boolean类型设置是否为24小时制*/
 
 my_timePickerDialog=new TimePickerDialog(Ex_Ctrl_15_B.this,
 
 myTimeSetListener, my_Hour, my_Minute, false);
 
 /*显示出日期设置对话框*/
 
 my_timePickerDialog.show();
 
 }
 
 break;
 
 default:
 
 break;
 
 }
 
 }
 
 }
 复制代码
 
 结果:
 
  | 
 |