• Android学习笔记23:时间日期控件的使用


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

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

     

    1.DatePicker

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

    1.1常用xml属性

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

    图1 DatePicker常用xml属性

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

    1.2常用方法

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

    (1)public CalendarView getCalendarView();   //获取CalendarView

    (2)public boolean getCalendarViewShown();   //获取CalendarView是否显示

    (3)public int getDayOfMonth();         //获取当前日期的日

    (4)public long getMaxDate();            //获取最大日期

    (5)public long getMinDate();            //获取最小日期

    (6)public int getMonth();               //获取当前日期的月

    (7)public boolean getSpinnersShown();        //获取Spinners是否显示

    (8)public int getYear();             //获取当前日期的年

    (9)public void init(int year,int monthOfYear,int dayOfMonth,

    DatePicker.OnDateChangedListener onDateChangedListener);     //初始化日期

    (10)public void setCalendarViewShown(boolean shown);      //设置是否显示CalendarView

    (11)public void setMaxDate(long maxDate);       //设置最大日期

    (12)public void setMinDate(long minDate);        //设置最小日期

    (13)public void setSpinnersShown(boolean shown);   //设置是否显示Spinners

    (14)public void updateDate(int year,int month,int dayOfMonth);    //更新当前日期

     

    2.TimePicker

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

    (1)public Integer getCurrentHour();       //获取当前时间的小时

    (2)public Integer getCurrentMinute();       //获取当前时间的分钟

    (3)public boolean is24HourView();        //获取是否为24小时模式

    (4)public void setCurrentHour(Integer currentHour);            //设置当前时间的小时

    (5)public void setCurrentMinute(Integer currentMinute);      //设置当前时间的分钟

    (6)public void setIs24HourView(Boolean is24HourView);      //设置24小时模式

     

    3.DatePickerDialog

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

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

    (2)public void onClick(DialogInterface dialog,int which);       //响应对话框中的点击事件

    (3)public void onDateChanged(DatePicker view,int year,int month,int day);       //响应日期改变事件

    (4)public void updateDate(int year,int monthOfYear,int dayOfMonth);              //更新当前日期

     

    4.TimePickerDialog

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

    (1)public void onClick(DialogInterface dialog,int which);                             //响应对话框中的点击事件

    (2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute);    //响应时间改变事件

    (3)public void updateTime(int hourOfDay,int minuteOfHour);                       //更新当前时间

     

    5.AnalogClock

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

     

    6.DigitalClock

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

     

    7.实例

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

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

    图2 主界面

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

    View Code
     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()方法。具体实现方法如下:

    View Code
     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     }
    作者:依旧淡然
    邮箱:menlsh@163.com
    本文版权归作者所有,未经作者同意,严禁转载及用作商业传播,否则将追究法律责任。
  • 相关阅读:
    windos端zabbix_agent重启报错:cannot open service
    搭建git服务器:centos环境
    git常用命令
    Centos7下ifconfig command not found 解决办法
    如何将EPEl安装在Centos7上
    linux安装openoffice,并解决中文乱码
    docker上配置mysql主从复制
    在docker上部署mysql
    linux上创建svn服务器(centos7.3)
    微信开发基于springboot
  • 原文地址:https://www.cnblogs.com/menlsh/p/2923867.html
Copyright © 2020-2023  润新知