Chronometer直接继承了TextView组件,它会显示一段文本,显示从某个其实时间开始,一共过了多长时间。我们看Chronometer的源码:

可以看出计时器是直接继承了TextView,当然可以用TextView的所有属性和方法。同时及时其还有自己的内部接口OnChronometerTickListener

计时器的新增属性和方法:

计时器的常用方法如下:

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

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

start() :开始计时

stop():停止计时

setOnChronometerTickListener(OnChronometerTickListener listener);为计时器绑定时间监听器,当计时器改变时触发该监听器

下面演示,点击按钮时开始计时,再次点击是停止计时,显示这段时间。注释的部分是当用户点击Button时系统开始计时,当计时超过20秒停止计时。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical" ><Chronometerandroid:id="@+id/chronometer1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Chronometer" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button" /></LinearLayout>
package com.example.chronometertest;import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;public class MainActivity extends Activity {Chronometer ch;Button btn;int flag=0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取计时组件ch=(Chronometer) findViewById(R.id.chronometer1);btn=(Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(flag==0){//设置开始计时的时间,点一下按钮开始,在点一下停止ch.setBase(SystemClock.elapsedRealtime());ch.start();//开始flag=1;}else{ch.stop();//停止flag=0;}/*  //设置开始计时的时间ch.setBase(SystemClock.elapsedRealtime());ch.start();btn.setEnabled(false);//按钮设置不可用
*/          }});//为chronometer设置事件监听器、当计时器改变是触发该监听器/*    ch.setOnChronometerTickListener(new OnChronometerTickListener(){@Overridepublic void onChronometerTick(Chronometer chronometer) {// TODO Auto-generated method stub//如果从现在开始计时到现在超过了20秒if(SystemClock.elapsedRealtime()-chronometer.getBase()>20*1000){ch.stop();btn.setEnabled(true);}}});*/}@Overridepublic 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

UI组件之TextView及其子类(五)计时器Chronometer相关推荐

  1. UI组件之TextView及其子类(二)RadioButton和CheckBox

    单选按钮(RadioButton)和复选框(CheckBox),状态开关按钮(ToggleButton),开关(Switch)都是普通的UI组件,都继承了Button类,因此都可以用Button的各种 ...

  2. UI组件之TextView及其子类(一)TextView和EditText

    先来整理一下TexView,EditView的用法. Textview是最基本的组件,直接继承了View,也是众多组件的父类,所以了解她的属性会对学习其他组件很有帮助. TextView的属性: an ...

  3. UI组件之TextView及其子类(四)AnalogClock,DigitalClock

    DigitalClock本身就继承了TextView,也就是说他本身就是文本框,只是显示的内容总是当前时间,DigitalClock设置的android:text属性没什么作用. AnalogCloc ...

  4. UI组件之TextView及其子类(三)ToggleButton和Switch

    ToggleButton.Switch.CheckBox和RadioButton都是继承自android.widget.CompoundButton,意思是可选择的,因此它们的用法都很类似.Compo ...

  5. UI组件之TextView及其子类

    学习完了需要经常总结,可能总结的不够全面,但是也是自己学习的进步.总结了如下图的关系,android那么多组件,清楚组件之间的关系感觉也是很重要的!下图中的每个组件的代码使用例程自己都敲过了,印象深刻 ...

  6. UI组件之AdapterView及其子类(五)ListView组件和ListActivity

    ListView组件是一个显示组件,继承AdapterView基类,前面已经介绍了分别使用ArrayAdapter,SimpleAdapter,扩展BaseAdapter来为LisView提供列表项h ...

  7. UI组件之AdapterView及其子类(六)ExpandableListView组件和ExpandableListActivity的使用

    ExpandableListView是ListView的子类,他在ListView上进行了扩展,它把列表项分成了几组,每组里包含了多个列表项 ExpandableListView的列表项是由Expan ...

  8. UI组件之AdapterView及其子类(一)三种Adapter适配器填充ListView

    AdapterView的内容一般是包含多项相同格式资源的列表,常用的有5种AdapterView的子类: (1)ListView:简单的列表 (2)Spinner:下拉列表,给用户提供选择 (3)Ga ...

  9. UI组件之AdapterView及其子类(四)Gallery画廊控件使用

    听说 Gallery现在已经不使用了,API使用ViewPaper代替了,以后再学专研ViewPaper吧现在说说Gallery画廊,就是不停显示图片的意思 Gallery是用来水平滚动的显示一系列项 ...

最新文章

  1. Maven Fluido Skin和Javadoc类图
  2. python queue模块安装_Python -- Queue模块
  3. 大学计算机python期末考试用什么软件_大学计算机--Python算法实践_章节测验,期末考试,慕课答案查询公众号...
  4. 360 nginx+php,windows Nginx+PHP7+Mysql独立环境部署
  5. java内存映射缓存,java – 用于数据库实现的内存映射的MappedByteBuffer或直接ByteBuffer?...
  6. python中定制类
  7. 1.3、TetGen网格化过程之描述
  8. 领扣(LeetCode)七进制数 个人题解
  9. POJ2456-Aggressive cows
  10. w10计算机字体怎么设置在哪里设置,如何设置修改win10系统电脑的显示字体
  11. 麻省理工18年春软件构造课程阅读10“抽象数据类型”
  12. python微信爬虫
  13. 13个提炼卖点的角度,让你的产品大卖!
  14. 排列组合解析与例题总结
  15. 企业微信会员运营 打破传统营销方式开启全渠道会员营销新模式
  16. mc服务器fabric安装位置,也许这是史上最详细的Fabric安装教程,助你在1.14/1.15安装mod...
  17. 聚合器是什么东西?聚合器的可能性
  18. Unity中国象棋(二)——走棋
  19. 2022年终总结(学习篇)
  20. React-Native 创建App项目

热门文章

  1. VC如何在编译链接程序过程中在输出窗口看到链接的顺序
  2. 模型参数优化(四):交叉验证、网格搜索
  3. 死锁的4个必要条件和处理策略
  4. C++ Primer 5th笔记(chap 10)泛型算法 :特定容器算法list
  5. 数学建模——灰色预测模型Python代码
  6. 虚拟机安装中文输入法
  7. 密码学-hash加密
  8. MFC类向导添加自定义消息未声明标识符的解决方法
  9. 【Prometheus 】 Blackbox_exporter 指标 probe_http_duration_seconds
  10. 17、MySQL函数简介