UI组件之TextView及其子类(五)计时器Chronometer
生活随笔
收集整理的這篇文章主要介紹了
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及其子类(四)
- 下一篇: UI组件之ImageView及其子类(一