智能课程表Android版-日期和时间的动态显示(二)
来源:互联网 发布:深蓝射频效果知乎 编辑:程序博客网 时间:2024/06/06 00:07
上一篇文章我们实现了时间的显示,但是是静态的,不能动态改变,那么怎么才能让静态的时间能以秒的方式来动态改变呢?
由于在上一篇文章中我们获得时间的方法是Calendar()类获得当前时间的方法getTime(),它只是返回一个程序启动的那个时间点的时间,那么要想以秒动的方式动态显示时间,我们可以考虑使用多线程来每秒刷新一次主界面,这样就可以每秒获得一次当前时间点的时间以秒动的方式来显示时间了。
在Android中我们可以使用Handler来实现多线程。
Handler在Android里负责发送和处理消息。它的主要用途有:
(1).按计划发送消息或执行某个Runnable(使用post方法);
(2).从其他线程中发送来的消息放入消息队列中,避免线程冲突(常用于更新UI)
我们主要使用Handler的两个方法:post(Runnable)和postDelayed(Runnable,long)
代码如下:
- package nyist.daylight;
- import java.util.Calendar;
- import java.text.SimpleDateFormat;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.widget.TextView;
- public class DateAndTimeextends Activity {
- /** Called when the activity is first created. */
- private String DEFAULT_TIME_FORMAT ="yyyy-MM-dd hh:mm:ss";
- private TextView textview01;
- private String time;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- handler.post(updateThread);
- //将将要执行的线程对象添加到线程队列当中,此时将会把该线程对象添加到handler对象的线程队列当中
- textview01=(TextView)findViewById(R.id.textview01);
- }
- //创建Handler对象
- Handler handler = new Handler();
- //新建一个线程对象
- Runnable updateThread = new Runnable(){
- //将要执行的操作写在线程对象的run方法当中
- public void run(){
- handler.postDelayed(updateThread, 1000);
- //调用Handler的postDelayed()方法
- //这个方法的作用是:将要执行的线程对象放入到队列当中,待时间结束后,运行制定的线程对象
- //第一个参数是Runnable类型:将要执行的线程对象
- //第二个参数是long类型:延迟的时间,以毫秒为单位
- SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
- time = dateFormatter.format(Calendar.getInstance().getTime());
- textview01.setText(time);
- }
- };
- }
package nyist.daylight;import java.util.Calendar;import java.text.SimpleDateFormat;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.TextView;public class DateAndTime extends Activity { /** Called when the activity is first created. */private String DEFAULT_TIME_FORMAT = "yyyy-MM-dd hh:mm:ss";private TextView textview01;private String time; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); handler.post(updateThread); //将将要执行的线程对象添加到线程队列当中,此时将会把该线程对象添加到handler对象的线程队列当中 textview01=(TextView)findViewById(R.id.textview01); } //创建Handler对象 Handler handler = new Handler(); //新建一个线程对象 Runnable updateThread = new Runnable(){ //将要执行的操作写在线程对象的run方法当中 public void run(){ handler.postDelayed(updateThread, 1000); //调用Handler的postDelayed()方法 //这个方法的作用是:将要执行的线程对象放入到队列当中,待时间结束后,运行制定的线程对象 //第一个参数是Runnable类型:将要执行的线程对象 //第二个参数是long类型:延迟的时间,以毫秒为单位 SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT); time = dateFormatter.format(Calendar.getInstance().getTime()); textview01.setText(time); } };}
模拟器中运行既得:
- 智能课程表Android版-日期和时间的动态显示(二)
- 智能课程表Android版-日期和时间的动态显示(二)
- 智能课程表Android版-日期和时间的动态显示(一)
- 智能课程表Android版-日期和时间的动态显示(一)
- Android中时间和日期的显示
- 智能课程表Android版-学年学期星期的实现
- 智能课程表Android版-学年学期星期的实现
- DOS上动态显示日期和时间
- js动态显示时间和日期
- 智能课程表Android版需求分析
- 智能课程表Android版需求分析
- JS显示动态的日期时间
- Android显示时间和日期的控件的使用总结
- Android显示时间和日期的控件的使用总结
- Android 系列 2.10格式化显示的时间和日期
- Js动态日期时间显示(简单易学实用版)
- android对话框显示当前日期和时间
- android中时间 和 日期 格式化显示
- maven快速入门
- 熬之滴水穿石:JAVA的世界(1)
- Ubuntu/linux下下载工具
- for的几种用法
- 智能课程表Android版-日期和时间的动态显示(一)
- 智能课程表Android版-日期和时间的动态显示(二)
- maven学习之八插件的使用
- 栈的使用和简单进制转换的应用
- OpenStack 之Nova添加扩展API流程,附带资源的查找功能
- 读文件大全
- windows 程序设计 第三章 (下)
- zoj_1095 Humble Numbers
- 追加文件内容
- 交通灯管理系统