android 时间日期控件的使用(DatePicker、TimePicker、DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock)

el/2024/7/17 22:13:00

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

复制代码
 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     }
复制代码

 




http://www.ngui.cc/el/5557166.html

相关文章

android AccessibilityService的用法

结构 public abstract class AccessibilityService extends Service java.lang.Object android.content.Context android.content.ContextWrapper android.app.Service android.accessibilityservice.AccessibilityService 类概述 当AccessibilityEvent事件被启动后Accessibili…

构建一个基于 Spring 的 RESTful Web Service

本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤。 目标 构建一个service,接收如下HTTP GET请求: http://localhost:8080/greeting 并返回如下JSON格式的问候语: {"id":1,"content":&…

android-错误:refused to install the app by The ADB command !

错误: Installing com.bafst.fanshop DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.bafst.fanshop" Please select on your phone whether can install the app by The ADB command! refused to install the app by The ADB command !Launching applic…

java中double四舍五入并自定义小数点位数

今天遇到个需要将一个double类型的数据保留小数点后两位的问题。 //方案二: DecimalFormat df new DecimalFormat("#.##"); get_double df.format(result_value); 首先result_value是处理前的double get_double是用来保存我处理后的double [java] view …

java中条件( ||) 逻辑( | !^)和按位( | ^ ~)的区别

结构 2 4 4 条件运算:&#xff08;&& ||&#xff09; 逻辑运算:&#xff08;& | &#xff01; ^&#xff09; 按位运算:&#xff08;& | ^ ~&#xff09; 位移 >> << >>>(无符号右移)

android的checkBox属性

CheckBox简介&#xff1a; CheckBox和Button一样&#xff0c;也是一种古老的控件&#xff0c;它的优点在于&#xff0c;不用用户去填写具体的信息&#xff0c;只需轻轻点击&#xff0c;缺点在于只有“是”和“否”两种情况&#xff0c;但我们往往利用它的这个特性&#xff0c;来…

android 中如何设置控件的字体和背景样式

1.设置背景图片&#xff0c;图片来源于drawable&#xff1b; button.setBackgroundDrawable(getResources().getDrawable(R.drawable.search_label_click)); 2.转换字符串为int&#xff08;颜色&#xff09;&#xff1b; button.setBackgroundColor(Color.parseColor("#F5…

android的监控日志和测试程序(logcat和强制抛错)

一、logcat的等级 Log.v() verbose Log.d() debug Log.i() info Log.w() warn Log.e() error 二、强制抛错 if&#xff08;true&#xff09;{ throw new NullPointerException }

Java 序列化 (Serializable) 的作用

序列化是什么&#xff1a; 序列化就是将一个对象的状态&#xff08;各个属性量&#xff09;保存起来&#xff0c;然后在适当的时候再获得。 序列化分为两大部分&#xff1a;序列化和反序列化。 序列化是这个过程的第一部分&#xff0c;将数据分解成字节流&#xff0c;以便存储…

android 解决EditText无法失去焦点和失去焦点后隐藏软键盘的问题

问题&#xff1a;Edittext组件会在界面生成是自动获取焦点&#xff0c;从而软键盘也会自动被调出&#xff0c; 并且点击其他按钮&#xff08;或空白地方&#xff09;时&#xff0c;软键盘也不会消失&#xff0c;怎么解决这一现象&#xff1f; 1.解决&#xff1a;在界面生成是自…