UI组件之TextView及其子类(五)计时器Chronometer
2016-01-13 11:12
225 查看
Chronometer直接继承了TextView组件,它会显示一段文本,显示从某个其实时间开始,一共过了多长时间。我们看Chronometer的源码:
可以看出计时器是直接继承了TextView,当然可以用TextView的所有属性和方法。同时及时其还有自己的内部接口OnChronometerTickListener
计时器的新增属性和方法:
计时器的常用方法如下:
setBase(long base):设置计时器的起始时间
setFormat(String format) :设置显示时间的格式
start() :开始计时
stop():停止计时
setOnChronometerTickListener(OnChronometerTickListener listener);为计时器绑定时间监听器,当计时器改变时触发该监听器
下面演示,点击按钮时开始计时,再次点击是停止计时,显示这段时间。注释的部分是当用户点击Button时系统开始计时,当计时超过20秒停止计时。
可以看出计时器是直接继承了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" > <Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" /> <Button android: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; @Override protected 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(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if(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(){ @Override public void onChronometerTick(Chronometer chronometer) { // TODO Auto-generated method stub //如果从现在开始计时到现在超过了20秒 if(SystemClock.elapsedRealtime()-chronometer.getBase()>20*1000){ ch.stop(); btn.setEnabled(true); } } });*/ } @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 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); } }
相关文章推荐
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing
- KVO (Key-Value Observing) 实现机制
- iOS里面尽量的避免两件事情的耦合性--ui刷新不应该和任何的事情耦合
- UIImage和Base64格式图片相互转化!
- ios常见错误之 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
- 解决集成支付宝报一堆warning: (arm64) /Users/scmbuild/workspace/standard-pay/.....警告问题
- UiAutomator——Android自动化测试工具简要介绍
- 【java】java 设计模式(4):建造者模式(Builder)
- 【已解决】finished with non-zero exit value 2
- The default for KeyValuePair
- Handler,Message,Looper & MessageQueue
- UI组件之TextView及其子类(四)AnalogClock,DigitalClock
- Android M 权限管理拿不到OnRequestPermissionsResult的回调
- Android 讲解:UI Include
- ios UITextView 插入图片和文字自适应高度
- iOS之UIGestureRecognizer_手势识别的简单用法
- 山寨新浪微博——TabBarController
- angular 使用 ui-router(1)
- UIKIT_EXTERN NSString *const 什么时候要这样写
- UIView的四种动画(类似于下拉刷新的动画效果)