UI组件之TextView及其子类(五)计时器Chronometer
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相关推荐
- UI组件之TextView及其子类(二)RadioButton和CheckBox
单选按钮(RadioButton)和复选框(CheckBox),状态开关按钮(ToggleButton),开关(Switch)都是普通的UI组件,都继承了Button类,因此都可以用Button的各种 ...
- UI组件之TextView及其子类(一)TextView和EditText
先来整理一下TexView,EditView的用法. Textview是最基本的组件,直接继承了View,也是众多组件的父类,所以了解她的属性会对学习其他组件很有帮助. TextView的属性: an ...
- UI组件之TextView及其子类(四)AnalogClock,DigitalClock
DigitalClock本身就继承了TextView,也就是说他本身就是文本框,只是显示的内容总是当前时间,DigitalClock设置的android:text属性没什么作用. AnalogCloc ...
- UI组件之TextView及其子类(三)ToggleButton和Switch
ToggleButton.Switch.CheckBox和RadioButton都是继承自android.widget.CompoundButton,意思是可选择的,因此它们的用法都很类似.Compo ...
- UI组件之TextView及其子类
学习完了需要经常总结,可能总结的不够全面,但是也是自己学习的进步.总结了如下图的关系,android那么多组件,清楚组件之间的关系感觉也是很重要的!下图中的每个组件的代码使用例程自己都敲过了,印象深刻 ...
- UI组件之AdapterView及其子类(五)ListView组件和ListActivity
ListView组件是一个显示组件,继承AdapterView基类,前面已经介绍了分别使用ArrayAdapter,SimpleAdapter,扩展BaseAdapter来为LisView提供列表项h ...
- UI组件之AdapterView及其子类(六)ExpandableListView组件和ExpandableListActivity的使用
ExpandableListView是ListView的子类,他在ListView上进行了扩展,它把列表项分成了几组,每组里包含了多个列表项 ExpandableListView的列表项是由Expan ...
- UI组件之AdapterView及其子类(一)三种Adapter适配器填充ListView
AdapterView的内容一般是包含多项相同格式资源的列表,常用的有5种AdapterView的子类: (1)ListView:简单的列表 (2)Spinner:下拉列表,给用户提供选择 (3)Ga ...
- UI组件之AdapterView及其子类(四)Gallery画廊控件使用
听说 Gallery现在已经不使用了,API使用ViewPaper代替了,以后再学专研ViewPaper吧现在说说Gallery画廊,就是不停显示图片的意思 Gallery是用来水平滚动的显示一系列项 ...
最新文章
- Maven Fluido Skin和Javadoc类图
- python queue模块安装_Python -- Queue模块
- 大学计算机python期末考试用什么软件_大学计算机--Python算法实践_章节测验,期末考试,慕课答案查询公众号...
- 360 nginx+php,windows Nginx+PHP7+Mysql独立环境部署
- java内存映射缓存,java – 用于数据库实现的内存映射的MappedByteBuffer或直接ByteBuffer?...
- python中定制类
- 1.3、TetGen网格化过程之描述
- 领扣(LeetCode)七进制数 个人题解
- POJ2456-Aggressive cows
- w10计算机字体怎么设置在哪里设置,如何设置修改win10系统电脑的显示字体
- 麻省理工18年春软件构造课程阅读10“抽象数据类型”
- python微信爬虫
- 13个提炼卖点的角度,让你的产品大卖!
- 排列组合解析与例题总结
- 企业微信会员运营 打破传统营销方式开启全渠道会员营销新模式
- mc服务器fabric安装位置,也许这是史上最详细的Fabric安装教程,助你在1.14/1.15安装mod...
- 聚合器是什么东西?聚合器的可能性
- Unity中国象棋(二)——走棋
- 2022年终总结(学习篇)
- React-Native 创建App项目