Android_Chronometer计时器

最近做一个项目用到Handler 和Message ,开始时不是很明白,不了解其中的内部机制,所以开发起来有点难度,之后自己找了Android 时间服务 这一节的内容,总结了一点关于时间的知识,在这里大概写一下,也给更多有需要的童鞋参考参考:

1. 这里首先来的是定时器Chronometer ,这是一个组件,在可视化视图中可以直接拖拽过去,然后自己设置相关的属性,我平时直接边界XML布局文件实现,个人感觉这样思路不会混乱。定时器比较简单,没有很多复杂的方法,大家只要记住重要的3个方法:start(); stop(); setBase(); 前两个方法没有参数,是启动和停止计时器的方法,后面的是重置计时器的,可以有参数,参数是从那个时间开始计时。先来看看效果图:

 

步骤:

 1】 布局采用线性布局,自己砌上去就行了。不多说

 2】onChronometerTick事件方法是计时器每秒回调的方法,我们可以用它来更新UI,看下面的代码:

package com.android.android_chronometer;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener,
        OnChronometerTickListener {

    private Button btnStart, btnStop, btnReset;
    private TextView textViewCurrentTime;
    // 定时器,一个可以自己设定开始时间的定时器
    private Chronometer chronometer;
    private SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnStart = (Button) this.findViewById(R.id.buttonBegin);
        btnStop = (Button) this.findViewById(R.id.buttonStop);
        btnReset = (Button) this.findViewById(R.id.buttonReset);
        textViewCurrentTime = (TextView) this
                .findViewById(R.id.textViewCurrentTime);
        chronometer = (Chronometer) this.findViewById(R.id.chronometer1);

        btnStart.setOnClickListener(this);
        btnStop.setOnClickListener(this);
        btnReset.setOnClickListener(this);

        chronometer.setOnChronometerTickListener(this);
        // 设定显示的计时格式
        chronometer.setFormat("计时器:%s");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.buttonBegin:
            // 计时器启动
            chronometer.start();
            break;
        case R.id.buttonStop:
            // 计时器停止
            chronometer.stop();
            break;
        default:
            // 以当前时刻重新计时
            chronometer.setBase(SystemClock.elapsedRealtime());
            break;
        }
    }

    /** 定时器没秒回调的方法,这样可以在UI界面上更新数据 */
    @Override
    public void onChronometerTick(Chronometer chronometer) {
        // TODO Auto-generated method stub
        textViewCurrentTime.setText("当前时间:" + formatter.format(new Date()));
    }

}


3】Handler 和Message 在后面的笔记中记录。

转载于:https://www.cnblogs.com/Isaber-blogs/p/3211026.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

补码

3.经常使用数值编码 因为机器数在计算时,假设符号位和数值位同一时候參与运算,则可能会产生错误结果;而假设单独考虑符号问题,又会添加运算器件的实现难度。因此,为了使计算机可以方便地对数值进行各种算术…

置顶 | wolai博客

最近用wolai记录笔记较多,这里放一下我wolai的地址,当然csdn这边也会同时更文。 hanhan的博客

深入研究Clang(四) Clang编译器的简单分析

作者:史宁宁(snsn1984)首先我们确定下Clang编译器的具体内容和涵盖范围。之前在《LLVM每日谈之二十 Everything && Clang driver 》中曾经提到过,Clang driver(命令行表示是clang)和Clang前端&…

Expression Trees 参数简化查询

ASP.NET MVC 引入了 ModelBinder 技术,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据,极大的方便了我们的编程,提高了生产力。在查询 Action 中,我们可以将 Expression Trees 用作参数,通过自定义的…

为你的程序添加监听器

平时在写程序时经常会遇到监听器,比如按钮的click监听器,按键监听器等等。而android中的监听器和java中的回调函数是同一个概念,都是在底层代码中定义一个接口来调用高层的代码。那么什么是回调函数呢?网上说的是“在WINDOWS中&am…

图像处理

android图像处理系列之四--给图片添加边框(上) http://www.oschina.net/question/157182_40586 android图像处理系列之六--给图片添加边框(下)-图片叠加 http://www.osc…

Git push 时每次都需要密码的疑惑

2015.1.13更新: 在本地搭建Git服务器时,也是有每次操作需要密码的情况。 是因为每次做推送动作时,Git需要认证你是好人。所以需要密码。 可以在 /home/username/.ssh/authorized_keys 文件里添加你的 ssh 公钥。一行一个。这样就可以在你push…

ruby字符串处理

1. str"abc123"puts str[0].chr > a puts str[0] >a的ascii码 2.中文字符串的正则表达式 文本编码:utf-8 文件第一行:#encoding:urf-8 require "iconv" str"八万"reg/(.)万/datareg.match(str)result Iconv.i…

PHP+七牛云存储上传图片代码片段

2014年11月14日 16:37:51 第一段代码是上传单个图片的,第二个是上传多个图片的 1 //上传到七牛2 //单个文件3 //formname: 表单名字; pre: 图片Url中显示的图片名字(也就是七牛中的key)4 public function upImage($formname, $pre)5 {6 if (empty($_FI…

【PS】Gold words tutorials 赤金字教程

material_01material_021. White background and black words.The font of "Laker" is Teenick, and "Huang" is 中國龍粗魏碑2.Open material_01 and select a part of it.Copy and paste the part part into our workspace.You can drag and move to pa…

iOS 键盘的关闭

iOS 键盘的关闭 //通过委托来放弃 “第一响应者” #pragma mark - UITextField Delegate Method -(BOOL)textFieldShouldReturn:(UITextField*)textField {[textField resignFirstResponder];return YES; } //通过委托来放弃 “第一响应者” #pragma mark - UITextView Delegat…

递归与分治

今天总算把第三章递归与分治看完了,呵呵,没想到开头就给我来了点打击,看以后不认真学还真不行了! 为了祝贺初战告捷,把几个简单的题目贴上来吧,纪念一下! 《整数因子分解》 大于1的正整数n可以分…

Android中的Handler机制

直接在UI线程中开启子线程来更新TextView显示的内容,运行程序我们会发现,如下错 误:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.翻译过来就是&…

初来乍到

从今天开始,我也加入博客园这个大家庭了,希望能和大家一起学习IT技术,共同进步。小弟初来乍到,望大家能多多关照!转载于:https://www.cnblogs.com/markwave/p/3227777.html

JQuery学习四(过滤选择器)

&#xff1a;first选择第一个元素。$&#xff08;“div:first”&#xff09;进行选择第一个<div> :last 选择最后一个最后一个元素 $&#xff08;"div:last"&#xff09;选取最后一个<div> [:not(选择器&#xff09;] 选择不满足“选择器”条件的元素 $…

160 - 1 Acid burn

环境&#xff1a;Windows XP sp3 先打开&#xff0c;看看长什么样&#xff1a; OD载入&#xff0c;右键->查找->所有参考文本字串 找到Sorry,The serial is incorect 找到后就在反汇编窗口跟随&#xff0c;往上翻&#xff1a; 0042F998 /. 55 push ebp 0…

跟树有关的数据结构学习系列之概览

1.Binary Search Tree&#xff08;BST&#xff09; 二叉搜索树 2.B-Tree 3.BTree 4.B*Tree转载于:https://www.cnblogs.com/devindong/p/3233041.html

在社会实践中长本领

暑假回到家&#xff0c;家里要我在自家店里帮忙&#xff0c;做员工。因为我家跟舅舅家合资开了一家家禽冻品批发部&#xff0c;生意兴旺&#xff0c;越做越大&#xff0c;忙得不可开交。在自家店里做员工&#xff0c;当然&#xff0c;家里人都很高兴&#xff0c;我也乐意。在员…

Animating Layout Changes(展开收起)

原文地址&#xff1a;https://developer.android.com/training/animation/layout.html#add &#xff08;1&#xff09;设置布局文件&#xff1a; <LinearLayout android:id"id/container"android:animateLayoutChanges"true"... /> &#xff08;2&am…

160 - 2 Afkayas.1

环境&#xff1a; Windows Xp sp3 OD载入&#xff1a; 运行&#xff0c;然后输入&#xff1a; 然后回到OD&#xff0c;按F12来暂停&#xff0c; 然后ALTF9回到程序领空&#xff0c;把弹出的那个错误消息框点掉&#xff0c;这时OD来到这里&#xff1a; 004025F9 . 68 E81…