Android平台下,关于日期和时间的几个相关控件。包括DatePicker(日期选择控件)、TimePicker(时间选择控件)、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择对话框)、AnalogClock(模拟时钟控件)、DigitalClock(数字时钟控件)。
DatePicker
  DatePicker、TimePicker都继承自android.widget.FrameLayout,并且默认展示风格、与操作风格也类似。DatePicker用于展示一个日期选择控件,TimePicker用于展示一个时间选择控件。
  作为一个日期选择控件,DatePicker可以通过设置属性来确定日期选择范围,也可以通过定义好的方法获取到当前选中的时间,并且在修改日期的时候,有响应的事件对其进行响应。
  DatePicker常用相关属性:

  • android:calendarViewShown:是否显示日历。 android:startYear:设置可选开始年份。
  • android:endYear:设置可选结束年份。
  • android:maxDate:设置可选最大日期,以mm/dd/yyyy格式设置。
  • android:minDate:设置可选最小日期,以mm/dd/yyyy格式设置。
    DatePicker的方法而言,除了常用获取属性的setter、getter方法之外,还需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。此方法的签名如下:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)

init()方法中,DatePicker被修改时响应的事件是DatePicker.OnDateChangedListener事件,如果要响应此事件,需要实现其中的onDateChanged()方法,其中参数从签名即可了解意思,这里不再累述。

onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)

TimePicker
  作为一个时间选择控件来说,TimePicker需要与时间相关的getter、setter方法之外,还需要有时间被修改够,回调的响应事件。
  TimePicker常用方法有如下几个:

  • is24HourView():判断是否为24小时制。
  • setIs24HourView():设置是否为24小时制显示。
  • getCurrentXxx():获取当前时间。 setCurrentXxx():设置当前时间。
  • setOnTimeChangedListener():设置时间被修改的回调方法。
    TimePicker控件被修改的回调方法,通过setOnTimeChangedListener()方法设置,其传递一个TimePicker.OnTimeChangedListener接口,需要实现其中的onTimeChanged()方法。
      下面通过一个示例来讲解这两个控件的使用,在示例中分别展示了这两个控件,并在其修改之后,把修改值通过Toast的方式展示到屏幕上。

布局代码:

   //布局代码:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><DatePickerandroid:id="@+id/dpPicker"android:calendarViewShown="false"android:layout_width="match_parent"android:layout_height="wrap_content" /><TimePickerandroid:id="@+id/tpPicker"android:layout_width="match_parent"android:layout_height="wrap_content" />
</LinearLayout>

java代码:

//java代码:
package com.bgxt.datatimepickerdemo;import java.text.SimpleDateFormat;
import java.util.Calendar;import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;public class DataTimePicker extends Activity {private DatePicker datePicker;private TimePicker timePicker;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_datatimepicker);datePicker = (DatePicker) findViewById(R.id.dpPicker);timePicker = (TimePicker) findViewById(R.id.tpPicker);datePicker.init(2013, 8, 20, new OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) {// 获取一个日历对象,并初始化为当前选中的时间Calendar calendar = Calendar.getInstance();calendar.set(year, monthOfYear, dayOfMonth);SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日  HH:mm");Toast.makeText(DataTimePicker.this,format.format(calendar.getTime()), Toast.LENGTH_SHORT).show();}});timePicker.setIs24HourView(true);timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay,int minute) {Toast.makeText(DataTimePicker.this,hourOfDay + "小时" + minute + "分钟",Toast.LENGTH_SHORT).show();}});}
}

DatePickerDialog、TimePickerDialog

DatePickerDialog、TimePickerDialog是两个对话框控件,一个弹出对话框用于选择日期,一个弹出对话框用于选择时间,都继承自android.app.AlertDialog。

这两个控件的开发过程,其主要就是开发其选择后日期或时间后,相应的事件。

对于DatePickeDialog而言,通过构造函数可以设置弹出的日期控件的初始值,并且可以指定选中日期后,回调事件的实现,构造函数的签名如下:

DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

其中DatePickerDialog.OnDateSetListener为日期选中的响应事件,其他为日期弹出窗口初始化的日期,对于一个OnDateSetListener接口而言,需要实现其中的onDateSet()方法,在这个方法内,可以得到用户选中的日期。

对于TimePickerDialog而言,同样可以通过构造函数设置初始值,并且设定选中日期后,回调事件的实现,构造函数的签名如下:

TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

其中TimePickerDialog.OnTimeSetListener为时间选中的响应事件,其他为时间弹出窗口初始化的时间,对于一个OnTimeSetListener接口而言,需要实现其中的onTimeSet()方法,在这个方法内,可以得到用户选中的时间。

AnalogClock、DigitalClock

AnalogClock、DigitalClock为两个时间展示控件,切只是展示的风格不同而已,没有什么太大的区别。有一点值得注意的就是,这两个控件展示的时间是无法修改的,仅为系统当前时间。看示例就能明白,没什么好详细说的。

下面通过一个例子说明一下DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock四个控件的使用。

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="指针时钟:" /><AnalogClockandroid:layout_width="fill_parent"android:layout_height="wrap_content" /><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="数字时钟:" /><DigitalClockandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20dp" /><Buttonandroid:id="@+id/btnTimePickerDialog"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Show TimePickerDialog"/><Buttonandroid:id="@+id/btnDatePickerDialog"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Show DatePickerDialog"/>
</LinearLayout>

Java代码:

package com.bgxt.datatimepickerdemo;import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;public class AnalogDigitalClock extends Activity implements OnClickListener {private Button btnDate, btnTime;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_anologdigital);btnDate = (Button) findViewById(R.id.btnDatePickerDialog);btnTime = (Button) findViewById(R.id.btnTimePickerDialog);btnDate.setOnClickListener(this);btnTime.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btnDatePickerDialog:DatePickerDialog datePicker=new DatePickerDialog(AnalogDigitalClock.this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {// TODO Auto-generated method stubToast.makeText(AnalogDigitalClock.this, year+"year "+(monthOfYear+1)+"month "+dayOfMonth+"day", Toast.LENGTH_SHORT).show();}}, 2013, 7, 20);datePicker.show();break;case R.id.btnTimePickerDialog:TimePickerDialog time=new TimePickerDialog(AnalogDigitalClock.this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {// TODO Auto-generated method stubToast.makeText(AnalogDigitalClock.this, hourOfDay+"hour "+minute+"minute", Toast.LENGTH_SHORT).show();}}, 18, 25, true);time.show();break;}}
}

安卓24:Android关于日期和时间的几个相关控件DatePicker、TimePicker等相关推荐

  1. Swing的日期选择控件DatePicker

    Swing的日期选择控件 依赖的包 图片示例 示例代码段 设置日期控件的值 验证代码 结论 依赖的包 下载DatePicker.jar 图片示例 示例代码段 JLabel dateJLabel = n ...

  2. 安卓开发(一)环境搭建、基本程序与控件

    layout: post title: 安卓开发(一)环境搭建.基本程序与控件 description: 安卓开发(一)环境搭建.基本程序与控件 tag: 安卓 文章目录 Intent:协助应用间的交 ...

  3. Android自定义View精品(CustomCalendar-定制日历控件)

    版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 目录: 文章目录 1.分析 2.自定义属性 3.onMeasure() 4.onDraw() ①.绘制月份 ...

  4. Swing 菜单JMenu,JMenuBar,JMenuItem、工具栏JToolBar、日期控件DatePicker和JXDatePicker、皮肤

    GUI的菜单分为 菜单栏,菜单和菜单项 菜单栏和菜单 菜单栏JMenuBar和菜单JMeun package gui;import javax.swing.JFrame; import javax.s ...

  5. Android之RemoteViews篇上————通知栏和桌面小控件

    Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...

  6. 时间控件date-picker 时间差计算

    时间控件date-picker 例子 //加载时间控件 $('.date-picker').datepicker({ rtl: Metronic.isRTL(),//RTL:right to left ...

  7. 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...

    [Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距

  8. android menu item 显示,Android 如何通过menu id来得到menu item 控件 .

    Android 如何通过menu id来得到menu item 控件 . (2012-07-21 06:43:31) 标签: android 如何 杂谈 Android 如何通过menu id来得到m ...

  9. android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题

    50_样式与主题 android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题 2013/5/12 50_样式与主题 ----------------- android样式和主题(st ...

  10. Android原生时间控件DatePicker——月份由英文转数字

    网上有很多优秀的开源时间控件,可以满足我们大部分的需求. 但有时候还是会碰到系统自带的DatePicker,这个控件默认的月份显示为英文,如JANUARY.FEBRUARY等. 如何将月份由英文改成数 ...

最新文章

  1. 集成学习--百面机器学习
  2. selenium选中某个控件敲击键盘
  3. 表单验证JavaScript实现正则匹配、随机验证码、密码强度、加拖拽加蒙板
  4. Redis在windows下安装过程(转载)
  5. myisam数据表根据frm文件恢复数据表
  6. [Wannafly挑战赛2D-Delete]最短路
  7. PGPool使用限制
  8. [每日一题] OCP1z0-047 :2013-07-13 oracle 10g正则表达式 REGEXP_LIKE 用法
  9. 音频分析工具:zplane de​​​​​​​Coda for Mac
  10. 统计项目代码行数工具,如何统计代码行数。
  11. AllenNLP框架学习笔记(数据篇之二)
  12. setup factory mysql_(一)setupFactory零基础制作零配置安装程序实例(打包JDK Tomcat Mysql mypm)...
  13. [用友]报表格式异常的处理
  14. 字体信息 TEXTMETRIC 字体结构 GLYPHMETRICS
  15. 【微信小程序】表单校验
  16. 武林外传 mysql 注册_武林外传588云服务器架设+el、npc、任务修改工具,云机教程...
  17. matlab的空间坐标轴,空间三维坐标轴旋转
  18. C语言值的引用传递—引用传递(地址传递)
  19. 万字报告!一文看懂全球车厂的技术家底模块化平台
  20. 用Python获取大众点评上长沙口味虾店铺信息,并进行数据分析

热门文章

  1. spring cloud系列eureka客服端搭建
  2. Failed to instantiate [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]: F
  3. 扬州大学2022年858程序设计与数据结构试题参考答案
  4. mysql5.730_MySQL 5.7 Group Replication错误总结(r11笔记第84天)
  5. 基于java的飞机大战雷电游戏的开发与设计#毕业设计
  6. Windows XP 启动NetMeeting
  7. 《英特尔 oneAPI—打开异构新纪元》
  8. 为什么要使用英英词典?
  9. SecureCRTSecureFX_HH_x86_7.0.0.326_PortableSoft.rar下载安装百度云
  10. MindManager_10 思维导图-软件下载