第四十七讲:用户界面View之Chronometer

众里寻她千百度,蓦然回首,那人却在灯火阑珊处。——宋辛弃疾青玉案

本讲内容:Chronometer 定时器

Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始。默认情况下它会显示在当前定时器的值的形式“分:秒”或“H:MM:SS的”,或者可以使用的Set(字符串)格式的定时器值到一个任意字符串

一、常用属性

android:format:定义时间的格式如:hh:mm:ss

二、常用方法

1、setBase(long base):设置倒计时定时器

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

3、start():开始计时

4、stop():停止计时

5、setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):当计时器改变时调用。

我们通过一个例子感受一下,代码的讲解都写在注释里了

下面是布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.text1.MainActivity$PlaceholderFragment" >
    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:format="計時:%s"/>
    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="開始"/>
    <Button
        android:id="@+id/stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止"/>
    <Button
        android:id="@+id/reset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="重置"/>
    <Button
        android:id="@+id/set_format"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="設置格式"/>
    <Button
        android:id="@+id/clear_format"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="清除格式"/>
</LinearLayout>

下面是主文件:

public class MainActivity extends Activity implements OnClickListener{
	private Button star;
	private Button stop;
	private Button reset;
	private Button set_format;
	private Button clear_format;
	private Chronometer chronometer;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		findViews();
	}
	public void findViews() {
		star=(Button) findViewById(R.id.start);
		stop=(Button) findViewById(R.id.stop);
		reset=(Button) findViewById(R.id.reset);
		set_format=(Button) findViewById(R.id.set_format);
		clear_format=(Button) findViewById(R.id.clear_format);
		chronometer=(Chronometer) findViewById(R.id.chronometer);
		//chronometer.setFormat("計時:%s");

		star.setOnClickListener(this);
		stop.setOnClickListener(this);
		reset.setOnClickListener(this);
		set_format.setOnClickListener(this);
		clear_format.setOnClickListener(this);
	}
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.start:
			chronometer.start();
			break;
		case R.id.stop:
			chronometer.stop();
			break;
		case R.id.reset:
			chronometer.setBase(SystemClock.elapsedRealtime());
			break;
		case R.id.set_format:
			chronometer.setFormat("定時計時器 (%s)");
			break;
		case R.id.clear_format:
			chronometer.setFormat(null);
			break;
		default:
			break;
		}
	}
}

下面是运行结果:

本讲就到这里,Take your time and enjoy it

时间: 2024-08-26 07:28:33

第四十七讲:用户界面View之Chronometer的相关文章

第四十七章

第四十七章1 听说在家就能悟道,是真的吗? 不出于户,以知天下:不窥于牖,以知天道. 悟道的人不用出门就可以知道天下之事:不用往窗外看就可以知道天道. 获取信息要尽量获取有用的知识,并且要依循天道的方向.而天道无须出门就可以领悟. 各位朋友大家好,今天我们接着来讲<道德经>.我这些天一直在外面走,讲课.访问.参观等等,虽然比较疲劳,但是很开心,为什么开心?其中一件特别开心的事就是,走到哪,大家都说罗老师,我们正在听您的<道德经>,从一开始一直听到现在,我听完很感动,尤其是我在惠州,

NeHe OpenGL教程 第四十七课:CG顶点脚本

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十七课:CG顶点脚本 CG 顶点脚本 nVidio的面向GPU的C语言,如果你相信它就好好学学吧,同样这里也只是个入门.记住,类似的语言还有微软的HLSL,OpenGL的GLSL,ATI的shaderMonker.不要选错哦:)

优化C#程序的四十七种方法

一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处: 2.在属性的get和set访问器重可使用lock添加多线程的支持. 二.readonly(运行时常量)和const(编译时常量) 1.const只可用于基元类型.枚举.字符串,而readonly则可以是任何的类型: 2.const在编译时将替换成具体的常量,这样如果在引用中同时使用了const和readonly两种值,则对readonly的再次改变将会改变设计的初衷,这是需要重新编译所更改的程序集,

Gradle 1.12用户指南翻译——第四十七章. Build Init 插件

文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc 本文翻译所在分支: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/usergu

ActionScript3游戏中的图像编程(连载四十七)

总目录:http://blog.csdn.net/iloveas2014/article/details/38304477 3.1.3 用内侧滤镜验证Flash简单滤镜的实现原理 以上测试都在外侧进行,为了证实内侧滤镜的实现机制与外侧并无大异,我再次用一个方块让内阴影滤镜在方块上移动.(图 3.23) 图 3.23 内阴影滤镜的效果 阴影层似乎并非从复制出来的轮廓,因为方块的边缘并不存在这种内转角的结构.但是,当我把距离调回到0的时候,真相终于浮出水面.(图 3.24) 图 3.24 距离为0的

QT开发(四十七)——数据库驱动层

QT开发(四十七)--数据库驱动层 驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁,主要类包括Qt SQL模块中的QSqlDriver.QSqlDriverCreator.QSqlDriverCreatorBase.QSqlDriverPlugin和QSqlResult. 一.QSqlDriver QSqlDriver是访问具体SQL数据库的抽象基类,不能直接使用.如果要创建自定义的数据库驱动,可以根据需要重写QSqlDriver类的纯虚函数和虚函数. 自定义数据库驱动 QSqlData

实验四十七微软应用程序虚拟化之二APP-V Sequencer 5.1服务器部署和创建第一个Office虚拟应用程序包

 实验四十七微软应用程序虚拟化之二APP-V Sequencer 5.1服务器部署和创建第一个Office虚拟应用程序包 APP-V Sequencer用于监视和捕获应用程序安装以创建虚拟应用程序包.输出包含应用程序图标..osd 文件(包含程序包定义信息).程序包清单文件,以及 .sft 文件(包含应用程序的内容文件). 说明: 环境基于实验四十六,准备一台Windows Server 2012的虚拟机名为APP-VSequencer并且加入域kkfloat.com,然后关闭UAC功能 1登录

第十七讲 继承

第十七讲 A)构造方法的重载:只需看参数即可.如果想在一个构造方法中调用另外一个构造方法,那么可以用this()的方式调用,this()括号中的参数表示目标构造方法的参数.this()必须要作为构造方法的第一条语句. B)继承:Java是单继承的,意味着一个类只能继承另一个类,继承使用extends关键字. C)当生成子类对象时,会默认先调用父类的不带参数的构造方法,生成父类对象,再执行该子类的构造方法,生成子类对象. D)如果子类的构造方法想调用调用父类的构造方法,可以用super()来显式调

《构建之法》第四&amp;十七章读书笔记

 <构建之法>第四&十七章读书笔记 一.         前言 再次阅读<构建之法>,愈发被其中生动有趣的举例吸引.作为一本给予软件工程学生的书籍,其不以枯燥的理论知识为核心,而是基于对知识和方法的引导.本次研读的这两章内容主要涉及了代码规范,两人结对与多人合作的团队方面等相关知识,从其中逐渐明白与人相处作业等方面的技巧与艺术.以下是我对这两章节的思考与疑惑. 二.        第四章<两人合作>. 本章主要涉及代码规范,极限编程,结对编程,两人合作不同阶段,