读书人

DatePicker跟TimePicker使用

发布时间: 2012-06-29 15:48:46 作者: rapoo

DatePicker和TimePicker使用

???? 发现有时候,不会的先去网上搜,网上再不满意那就看文档。很能解决问题的一个办法。哈哈 也许你们早就发现了吧。

???? 要实现功能如下:

????
DatePicker跟TimePicker使用
?左右两个EditText,均显示当前时间,当点击某一个时,出现日期或者时间控件,可以对其进行修改。前提是不用xml写。

?上代码吧 (*^__^*) 嘻嘻

// 用来保存年月日:private int mYear;private int mMonth;private int mDay;// 声明一个独一无二的标识,来作为要显示DatePicker的Dialog的ID:static final int DATE_DIALOG_ID = 0;//用来保存时间:                private int mHour;private int mMinute;static final int TIME_DIALOG_ID = 1;

?

 /**         * 设置当前时间和日期         */      EditText  date=(EditText)layout.findViewById(R.id.date);              date.setInputType(InputType.TYPE_NULL);//关闭软键盘                      EditText  time=(EditText)layout.findViewById(R.id.time);            time.setInputType(InputType.TYPE_NULL);//关闭软键盘        //添加监听        date.setOnClickListener(new dateListener());            time.setOnClickListener(new timeListener());

?

/** * 实现当前时间的选择和获取 * 监听类 *  */class timeListener implements View.OnClickListener{@Overridepublic void onClick(View v) { // get the current time       final Calendar c = Calendar.getInstance(); mHour = c.get(Calendar.HOUR_OF_DAY);   mMinute = c.get(Calendar.MINUTE);      // display the current date      time.setText( new StringBuilder().append(pad(mHour)).append(":").append(pad(mMinute))); showDialog(TIME_DIALOG_ID);}}private static String pad(int c) {if (c >= 10)return String.valueOf(c);elsereturn "0" + String.valueOf(c);}// // 需要定义弹出的TimePicker对话框的事件监听器:private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {public void onTimeSet(TimePicker view, int hourOfDay, int minute) {mHour = hourOfDay;mMinute = minute;time.setText( new StringBuilder().append(pad(mHour)).append(":").append(pad(mMinute)));}};/** * 实现当前日期的选择和获取 *  * 监听类 */class dateListener implements View.OnClickListener {@Overridepublic void onClick(View v) {// 获得当前的日期:Calendar currentDate = Calendar.getInstance();mYear = currentDate.get(Calendar.YEAR);mMonth = currentDate.get(Calendar.MONTH);mDay = currentDate.get(Calendar.DAY_OF_MONTH);/*// 设置文本的内容:date.setText(new StringBuilder().append(mYear).append("-").append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始.append(mDay));*/showDialog(DATE_DIALOG_ID);}}// 需要定义弹出的DatePicker对话框的事件监听器:private DatePickerDialog.OnDateSetListener mDateSetListener = new OnDateSetListener() {public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {mYear = year;mMonth = monthOfYear;mDay = dayOfMonth;// 设置文本的内容:date.setText(new StringBuilder().append(mYear).append("-").append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始.append(mDay));}};// 当Activity调用showDialog函数时会触发该函数的调用: 66. */protected Dialog onCreateDialog(int id) {switch (id) {case DATE_DIALOG_ID:return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);case TIME_DIALOG_ID:return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute,false);}return null;}

?

点击时间时,运行效果如下:


DatePicker跟TimePicker使用
?我就喜欢看有图有代码的,简单明了。嘿嘿

?

读书人网 >开源软件

热点推荐