Android之計時器(Chronometer)的用法

來源:互聯網
上載者:User

第一步:布局檔案:

main.xml代碼如下:View Code

 1 <?xml version="1.0" encoding="utf-8"?> 2  3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 4  5     android:layout_width="fill_parent" 6  7     android:layout_height="fill_parent" 8  9     android:orientation="vertical" >10 11 12 13 14     <Chronometer15 16         android:id="@+id/myChronometer"17 18         android:layout_width="fill_parent"19 20         android:layout_height="wrap_content" />21 22 23 24 25     <LinearLayout26 27         android:layout_width="fill_parent"28 29         android:layout_height="wrap_content"30 31         android:orientation="horizontal" >32 33 34 35 36         <Button37 38             android:id="@+id/btn_start"39 40             android:layout_width="wrap_content"41 42             android:layout_height="wrap_content"43 44             android:text="開始" />45 46 47 48 49         <Button50 51             android:id="@+id/btn_stop"52 53             android:layout_width="wrap_content"54 55             android:layout_height="wrap_content"56 57             android:text="停止" />58 59 60 61 62         <Button63 64             android:id="@+id/btn_base"65 66             android:layout_width="wrap_content"67 68             android:layout_height="wrap_content"69 70             android:text="複位" />71 72 73 74 75         <Button76 77             android:id="@+id/btn_format"78 79             android:layout_width="wrap_content"80 81             android:layout_height="wrap_content"82 83             android:text="格式化" />84 85     </LinearLayout>86 87 88 89 90 </LinearLayout>
第二步:MainActivity代碼如下:View Code

  1 package net.loonggg.chronometer;  2   3   4   5   6 import android.app.Activity;  7   8 import android.os.Bundle;  9  10 import android.os.SystemClock; 11  12 import android.os.Vibrator; 13  14 import android.view.View; 15  16 import android.widget.Button; 17  18 import android.widget.Chronometer; 19  20 import android.widget.Chronometer.OnChronometerTickListener; 21  22  23  24  25 public class MainActivity extends Activity { 26  27     private Vibrator vibrator; 28  29     private Chronometer chronometer; // 計時組件 30  31     private Button btn_start; 32  33     private Button btn_stop; 34  35     private Button btn_base; 36  37     private Button btn_format; 38  39  40  41  42     @Override 43  44     public void onCreate(Bundle savedInstanceState) { 45  46         super.onCreate(savedInstanceState); 47  48         setContentView(R.layout.main); 49  50         vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);// 擷取震動服務 51  52         chronometer = (Chronometer) findViewById(R.id.myChronometer); 53  54         chronometer 55  56                 .setOnChronometerTickListener(new OnChronometerTickListenerImpl()); // 給計時組件設定艦艇對象 57  58         btn_start = (Button) findViewById(R.id.btn_start); 59  60         btn_stop = (Button) findViewById(R.id.btn_stop); 61  62         btn_base = (Button) findViewById(R.id.btn_base); 63  64         btn_format = (Button) findViewById(R.id.btn_format); 65  66  67  68  69         btn_start.setOnClickListener(new ButtonClickListener()); 70  71         btn_stop.setOnClickListener(new ButtonClickListener()); 72  73         btn_base.setOnClickListener(new ButtonClickListener()); 74  75         btn_format.setOnClickListener(new ButtonClickListener()); 76  77     } 78  79  80  81  82     public class OnChronometerTickListenerImpl implements // 計時監聽事件,隨時隨地的監聽時間的變化 83  84             OnChronometerTickListener { 85  86  87  88  89         @Override 90  91         public void onChronometerTick(Chronometer chronometer) { 92  93             String time = chronometer.getText().toString(); 94  95             if ("00:05".equals(time)) {// 判斷五秒之後,讓手機震動 96  97                 vibrator.vibrate(new long[] { 1000, 10, 100, 10 }, 0);// 設定震動周期和是否迴圈震動,如果不想迴圈震動把0改為-1 98  99             }100 101         }102 103     }104 105 106 107 108     public class ButtonClickListener implements View.OnClickListener {109 110 111 112 113         @Override114 115         public void onClick(View v) {116 117             switch (v.getId()) {118 119             case R.id.btn_start:120 121                 chronometer.start();// 開始計時122 123                 break;124 125             case R.id.btn_stop:126 127                 chronometer.stop();// 停止計時128 129                 break;130 131             case R.id.btn_base:132 133                 chronometer.setBase(SystemClock.elapsedRealtime());// 複位鍵134 135                 break;136 137             case R.id.btn_format:138 139                 chronometer.setFormat("顯示時間:%s.");// 更改時間顯示格式140 141                 break;142 143 144 145 146             default:147 148                 break;149 150             }151 152         }153 154 155 156 157     }158 159 }
第三步:註冊許可權: <uses-permission android:name="android.permission.VIBRATE" />
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.