跟我学Android之九 日期时间组件

本章内容

第1节 AnalogClock和DigitalClock

第2节  CalendarView

第3节  DatePicker和TimerPicker

第4节  Chronometer

第5节   Timer类

本章目标

掌握图形时钟和数字时钟的用法。

掌握日历视图的用法。

熟练掌握日期和时间选择器的用法。

熟练掌握Chronometer的用法。

熟练掌握Timer类的用法。

AnalogClock是一个模拟时钟视图,使用AnalogClock标签进行布局,除了长宽外基本需要其他属性,对应的Java类是android.widget.AnalogClock,布局示例如下:

<AnalogClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

DigitalClock是一个数字时钟视图,使用DigitalClock标签进行布局,除了长宽外基本需要其他属性,对应的Java类是android.widget.DigitalClock,布局示例如下:

<DigitalClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

日历视图CalendarView,可用于显示和选择日期

<CalendarView
		android:layout_width="match_parent"
		android:layout_height="match_parent"
		android:firstDayOfWeek="3"
		android:shownWeekCount="4"
		android:selectedWeekBackgroundColor="#aff"
		android:focusedMonthDateColor="#f00"
		android:weekSeparatorLineColor="#ff0"
		android:unfocusedMonthDateColor="#f9f"
		android:id="@+id/calendarView" />

事件,选项改变事件

public void onSelectedDayChange(CalendarView view, int year,
					int month, int dayOfMonth)
	 {
// 使用Toast显示用户选择的日期
	Toast.makeText(CalendarViewTest.this,
"你生日是" + year + "年" + month + "月" + dayOfMonth + "日" ,
	Toast.LENGTH_SHORT).show();
	}
});

DatePicker是一个用于日期选择的控件,使用DatePicker进行布局,常用属性如下:

android:calendarViewShown 表示是否显示完整日历

android:endYear 表示可以选择的最大年份

android:maxDate 表示日历显示的最大日期

android:spinnerShown 表示是否显示调节箭头按钮

    

DatePicker是一个用于日期选择的控件,对应的类是android.widget.DatePicker,常用方法如下:

init() 用于初始化显示日期和注册日期选择变化的监听器

getYear() 用于提取选中的年份

getMonth() 用于提取选中的月份

getDayOfMonth()  用于提取选中的日

布局示例如下:

<DatePicker
        android:id="@+id/datepick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:calendarViewShown="true"
        />

TimePicker是一个用于时间选择的控件,使用TimePicker进行布局,除了长宽外基本不用设置其他属性

对应的类是android.widget.TimePicker,常用方法如下:

getCurrentHour() 获取当前小时

getCurrentMinute() 获取当前分钟

android.widget.TimePicker.OnTimeChangedListener为事件监听接口

计时器Chronometer,该组件与DigitalClock都继承自TextView,因此它们都会显示一段文本。但Chronometer并不显示当前时间,它显示的是从某个起始时间开始,一共过去了多长时间。

Chronometer支持如下常用方法。

setBase(long base):设置计时器的起始时间。

setFormat(String format):设置显示时间的格式。

start():开始计时。

stop():停止计时。

setOnChronometerTickListener(Chronometer.OnChronometerTickListener   listener):为计时器绑定事件监听器,当计时器改变时触发该监听器。

使用Chronometer控件实现计器的操作,开始

// 设置开始计时时间

chronometer.setBase(SystemClock.elapsedRealtime());

// 开始记时

chronometer.start();

chronometer.stop(); //停止

计时器定时触发的事件

 chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
public void onChronometerTick(Chronometer chronometer) {
                        // 如果开始计时到现在超过了startime秒
                        if (SystemClock.elapsedRealtime()
                                - chronometer.getBase() > startTime * 1000) {
                            chronometer.stop();
                            // 给用户提示
                            showDialog();
                        }
                    }
                });

基于Chronometer制作幻灯片

Timer类

Timer类的功能与Chronometer组件类似,可以每隔特定时间执行程序代码,且功能比Chronometer组件强大

语法

Timer对象是以schedule方法执行

Timer对象名称.schedule(TimerTask对象,延迟时间,间隔时间);

TimerTask对象:是Timer对象定时执行的程序代码所在,开发者必须自己编写要执行的程序代码。延迟时间:设置多长时间后才开始执行Timer对象,单位是毫秒。间隔时间:设置间隔多长时间执行TimerTask对象一次,单位是毫秒。

TimerTask类

TimerTask对象是Timer对象的主体,也就是用来定义Timer对象定时要执行的工作内容。在TimerTask对象中run方法里的程序代码就是重复执行的代码块,语法为

private TimerTask变量名称=new  TimerTask() {
    public void run()
    {
    	执行程序代码…
    }
);

Handler对象是应用程序中不同线程之间的消息中介,在TimerTask对象中使用Message对象送出消息。

public void run ()
 {
          Message message=new Message () ;
          message.what=送出消息;
          handler.sendMessage (message) ;
 }

Handler对象接收消息的语法为:

private Handler变量名称=new  Handler(){
    public void handleMessage(Message msg
    {    super.handleMessage (msg);
    	switch (msg.what){
    	case接收消息: 	程序代码
    	break;
   )   }};

计时秒表初始化计时器

Timer timer=new Timer();//创建Timer对象
timer.schedule(new TimerTask() {//创建TimerTask对象
public void run() {
	if(flag){
	tSec++;
	Message msg=new Message();//创建消息对象
	msg.what=1;//设定类型
	handler.sendMessage(msg);//传送消息给Handler
	}
}
}, 0,1000);//立刻开始执行,时间间隔为1000毫秒

计时秒表,接受消息

public void handleMessage(Message msg){//接受消息
super.handleMessage(msg);
switch(msg.what){//判断消息类型
	case 1:
		cSec=tSec%60;//获取秒数
		cMin=tSec/60;//获取分钟数
	String str=String.format("%02d:%02d", cMin,cSec);//以00:00的格式显示数据
	txtClock.setText(str);
	break;
}
}

时间: 2024-07-30 10:29:32

跟我学Android之九 日期时间组件的相关文章

Android界面编程——日期时间组件(五)

Android界面编程--日期时间组件 2.6日期时间组件 2.6.1 TextClock 以文本的方式显示系统日期和时间,可以自定义显示格式,是 Android4.2(对应API Level 17)提供的新特性. TextClock有两种格式设置方式: 1. 在24小时模式: 属性:android:format24Hour 方法:set Format24Hour(CharSequence) 2. 在12小时模式: 属性:android: format12Hour 方法:set Format12

Android中关于日期时间与时区的使用总结

原文引自:http://www.2cto.com/kf/201312/266908.html 在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范. 一.Unix时间戳 Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方法,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数.Unix时间戳不仅被

Android中实现日期时间选择器(DatePicker和TimePicker)

利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android 中 系统日期时间的获取

From:http://blog.csdn.net/feifei454498130/article/details/6540133 import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss "); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String

日期时间插件--日期时间组件文档 - layui.laydate

官方文档:http://www.layui.com/doc/modules/laydate.html 样式: <body> <div> <input placeholder="开始时间" id="LAY_start_time" name="startTime"type="text"readonly/> <input placeholder="截止时间" id=&qu

从零开始学android&lt;AnalogClock与DigitalClock时钟组件.三十一.&gt;

这两个组件比较交单,大家看下会使用就行了 XML文件配置 <span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa

从零開始学android&amp;lt;ImageSwitcher图片切换组件.二十六.&amp;gt;

ImageSwitcher组件的主要功能是完毕图片的切换显示,比如用户在进行图片浏览的时候.能够通过button点击一张张的切换显示的图片,并且使用ImageSwitcher组件在每次切换的时候也能够为其添加一些动画的效果,此类定义例如以下: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.ViewAnimator ? andro

android日期时间选择器

android原生的日期时间控件,因为是原生的总有其满足不了我们需求的时候,Android 手机版本那么多,用户弹出来的控件五花八门.因为项目需要,在网上找了一 些demo看了看,感觉有些写的很好,很有借鉴意义,特此记下,方便后来者. 先看下可以达到的效果图,是不是正好需要的呢: 具体细节不再赘述,可以到源码里查看,最后会贴上源码下载地址或者可以留言. 源码地址 https://download.csdn.net/download/heishuai123/10453741 原文地址:https:

【Ruby】日期 &amp; 时间

阅读目录 创建当前的日期和时间 获取日期&时间组件 Time.utc.Time.gm 和 Time.local 函数 时区和夏令时 格式化时间和日期 时间格式化指令 时间算法 Time 类在 Ruby 中用于表示日期和时间.它是基于操作系统提供的系统日期和时间之上.该类可能无法表示 1970 年之前或者 2038 年之后的日期. 创建当前的日期和时间 下面是获取当前的日期和时间的简单实例: 实例: #!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time1