在Android中,时间日期控件相对来说还是比较丰富的。其中,DatePicker用来实现日期输入设置,TimePicker用来实现时间输入设置。DatePickerDialog用来显示日期对话框,TimePickerDialog用来显示时间对话框。AnalogClock用来显示一个指针式时钟,DigitalClock用来显示一个数字式时钟。

  下面就分别对这些时间日期控件做一个简单的介绍。

1.DatePicker

  在Android中,DatePicker用来实现日期输入设置,日期的设置范围为1900年1月1日至2100年12月31日。

1.1常用xml属性

  DatePicker的常用xml属性如图1所示:

图1DatePicker常用xml属性

  其中,android:calendarViewShown[boolean]用于设置是否显示calendarview;android:endYear[int]用于设置截至日期;android:maxDate[int]用于设置最大的日期;android:minDate[int]用于设置最小的日期;android:spinnersShown[boolean]用于设置是否显示spinners;android:startYear[int]用于设置起始日期。

1.2常用方法

  DatePicker的常用方法有以下一些:

(1)publicCalendarViewgetCalendarView();   //获取CalendarView

(2)publicbooleangetCalendarViewShown();   //获取CalendarView是否显示

(3)publicintgetDayOfMonth();         //获取当前日期的日

(4)publiclonggetMaxDate();          //获取最大日期

(5)publiclonggetMinDate();         //获取最小日期

(6)publicintgetMonth();            //获取当前日期的月

(7)publicbooleangetSpinnersShown();    //获取Spinners是否显示

(8)publicintgetYear();             //获取当前日期的年

(9)publicvoidinit(intyear,intmonthOfYear,intdayOfMonth,

DatePicker.OnDateChangedListeneronDateChangedListener);     //初始化日期

(10)publicvoidsetCalendarViewShown(booleanshown);      //设置是否显示CalendarView

(11)publicvoidsetMaxDate(longmaxDate);       //设置最大日期

(12)publicvoidsetMinDate(longminDate);       //设置最小日期

(13)publicvoidsetSpinnersShown(booleanshown);   //设置是否显示Spinners

(14)publicvoidupdateDate(intyear,intmonth,intdayOfMonth);   //更新当前日期

2.TimePicker

  在Android中,TimePicker用来实现时间输入设置,可以选择12或24小时模式。TimePicker的常用方法有以下一些:

(1)publicIntegergetCurrentHour();       //获取当前时间的小时

(2)publicIntegergetCurrentMinute();      //获取当前时间的分钟

(3)publicbooleanis24HourView();       //获取是否为24小时模式

(4)publicvoidsetCurrentHour(IntegercurrentHour); //设置当前时间的小时

(5)publicvoidsetCurrentMinute(IntegercurrentMinute); //设置当前时间的分钟

(6)publicvoidsetIs24HourView(Booleanis24HourView); //设置24小时模式

3.DatePickerDialog

  在Android中,DatePickerDialog用来显示日期对话框。DatePickerDialog的常用方法有以下一些:

(1)publicDatePickergetDatePicker(); //获取DatePicker中的日期值

(2)publicvoidonClick(DialogInterfacedialog,intwhich); //响应对话框中的点击事件

(3)publicvoidonDateChanged(DatePickerview,intyear,intmonth,intday); //响应日期改变事件

(4)publicvoidupdateDate(intyear,intmonthOfYear,intdayOfMonth); //更新当前日期

4.TimePickerDialog

  在Android中,TimePickerDialog用来显示时间对话框。TimePickerDialog的常用方法有以下一些:

(1)publicvoidonClick(DialogInterfacedialog,intwhich); //响应对话框中的点击事件

(2)publicvoidonTimeChanged(TimePickerview,inthourOfDay,intminute); //响应时间改变事件

(3)publicvoidupdateTime(inthourOfDay,intminuteOfHour); //更新当前时间

5.AnalogClock

  在Android中,AnalogClock用于显示指针式时钟,该时钟仅有时钟和分钟两个指针。

6.DigitalClock

  在Android中,DigitalClock用来显示数字式时钟,显示格式为HH:MM:SSAM/PM。

7.实例

  清楚了上面一些关于时间日期控件的属性和方法之后,我们就可以很容易的使用时间日期控件了。

  在本例中,我们通过DatePicker实现了日期输入设置控件的显示,通过TimePicker实现了时间输入设置控件的显示。并在主界面中中添加了两个Button控件,分别用于弹出日期设置对话框DatePickerDialog和时间设置对话框TimePickerDialog。主界面如图2所示:

图2主界面

  通过DatePicker控件中的“+”和“-”按钮可以分别调整年月日的值,通过TimePicker的“+”和“-”按钮可以分别调整小时和分钟的值。要监听年月日值的改变,需要实现接口android.widget.DatePicker.OnDateChangedListener中的onDateChanged()方法;要监听小时和分钟的值的改变,需要实现接口android.widget.TimePicker.OnTimeChangedListener中的onTimeChanged()方法。具体实现方法如下:

 1 /* 2      * Function  :    时间改变触发函数 3      * Param         :    view时间控件对象;hourOfDay小时;minute分钟 4      * Author      :    博客园-依旧淡然 5      */ 6     public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 7         Toast.makeText(MainActivity.this, "当前时间为 " + hourOfDay + ":" + minute,  8                 Toast.LENGTH_LONG).show(); 9     }10 11     /*12      * Function  :    日期改变触发函数13      * Param         :    view日期控件对象;year年;monthOfYear月;dayOfMonth日14      * Author      :    博客园-依旧淡然15      */16     public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {17         Toast.makeText(MainActivity.this, "当前日期为" + year + "年" + monthOfYear + "月" + dayOfMonth + "日", 18                 Toast.LENGTH_LONG).show();19     }

  通过对DatePicker控件和TimePicker控件进行监听,当点击DatePicker控件或TimePicker控件中的“+”或“-”按钮时,将弹出当前日期或当前时间的提示信息,如图3所示:

图3调整日期控件的日期值

  除此之外,我们也可以通过日期对话框DatePickerDialog和时间对话框TimePickerDialog来调整日期和时间值。通过点击按钮“通过DatePickerDialog设置日期值”可以弹出日期对话框,通过点击按钮“通过TimePickerDialog设置时间值”可以弹出时间对话框,时间设置对话框如图4所示。

图4时间设置对话框

  在时间设置对话框中,同样可以调整时间值。需要注意的是,在DatePickerDialog控件中需要实现DatePickerDialog.OnDateSetListener接口,并实现该接口中的onDateSet()方法。在TimePickerDialog控件中需要实现TimePickerDialog.OnTimeSetListener接口,并实现该接口中的onTimeSet()方法。具体实现方法如下:

 1 /* 2      * Function  :        Button按钮响应 3      * Param         :        v按钮对象 4      * Author      :    博客园-依旧淡然 5      */ 6     public void onClick(View v) { 7         switch (v.getId()) { 8         case R.id.buttonChangeDate: 9             MyDatePickerDialog myDatePickerDialog = new MyDatePickerDialog();10             DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, 11                     myDatePickerDialog, mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());12             datePickerDialog.show();                //显示日期设置对话框13             break;14         case R.id.buttonChangeTime:15             MyTimePickerDialog myTimePickerDialog = new MyTimePickerDialog();16             TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, 17                     myTimePickerDialog, mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute(), true);18             timePickerDialog.show();            //显示时间设置对话框19             break;20         }21     }22     23     /*24      * Function  :       自定义MyDatePickerDialog类,用于实现DatePickerDialog.OnDateSetListener接口,25      *                           当点击日期设置对话框中的“设置”按钮时触发该接口方法26      * Author      :    博客园-依旧淡然27      */28     public class MyDatePickerDialog implements DatePickerDialog.OnDateSetListener {29         public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {30             mDatePicker.updateDate(year, monthOfYear, dayOfMonth);        //更新日期值31         }32     }    33      34     /*35      * Function  :       自定义MyTimePickerDialog类,用于实现TimePickerDialog.OnTimeSetListener接口,36      *                           当点击时间设置对话框中的“设置”按钮时触发该接口方法37      * Author      :    博客园-依旧淡然38      */39     public class MyTimePickerDialog implements TimePickerDialog.OnTimeSetListener {40         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {41             mTimePicker.setCurrentHour(hourOfDay);        //设置TimePicker的小时值42             mTimePicker.setCurrentMinute(minute);            //设置TimePicker的分钟值43         }        44     }

更多相关文章

  1. 【ArcGIS for Android】使用自定义Callout显示地图信息
  2. (转载)Android(安卓)耗时代码(ANR)的查找检测和分析解决 TraceView
  3. Android测试之Monkey原理及源码分析(一)
  4. Android(安卓)GridView 滑动条设置一直显示状态(推荐)
  5. Android——camera摄像头
  6. 定义Window进入和退出效果(及Window,Activity,View的理解)
  7. 学习笔记:Android中使用网络技术的方法(webview、httpurlconnectio
  8. android app设置亮屏的几种方式以及功耗对比
  9. react-native调用Android原生控件

随机推荐

  1. Android中SurfaceView用法简单实例
  2. Android(安卓)Robotium小结
  3. Android中的跨进程回调
  4. android得到已安装和未安装apk的信息
  5. Android(安卓)JNI/NDK开发之基本姿势
  6. 自定义Toast
  7. Android(安卓)ubuntu10.04 源码下载和编
  8. Android学习 之 Activity和Window之间的
  9. Android(安卓): CardView的优雅使用
  10. android Vitamio(维他命)入门