(Android)Chronometerでシンプルなストップウォッチを作ってみた
android.widget.Chronometerのお勉強に、シンプルなストップウォッチを作ってみました。
Chronometerの使い方は、
-
- Chronometerの定義
- setBaseで基準時刻の設定
- startメソッドでタイマー開始
- stopメソッドでタイマー停止
といった感じです。
以下、コードです。
(StopWatchActivity.java)
package com.example.android.stopwatch; import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; public class StopWatchActivity extends Activity { boolean chk = false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Chronometer c = (Chronometer)findViewById(R.id.chronometer_id); /** Start Button **/ Button st_b = (Button)findViewById(R.id.start_button_id); st_b.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { if (chk) { c.start(); } else { c.setBase(SystemClock.elapsedRealtime()); c.start(); } } } ); /** Stop Button **/ Button sp_b = (Button)findViewById(R.id.stop_button_id); sp_b.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { c.stop(); chk = true; } } ); /** Reset Button **/ Button rt_b = (Button)findViewById(R.id.reset_button_id); rt_b.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { c.stop(); c.setBase(SystemClock.elapsedRealtime()); chk = false; } } ); } }
(main.xml)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Chronometer android:id="@+id/chronometer_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="@string/chronometer_format" /> <LinearLayout android:orientation="horizontal" android:gravity="right" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/start_button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/start_button_label" /> <Button android:id="@+id/stop_button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/stop_button_label" /> <Button android:id="@+id/reset_button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/reset_button_label" /> </LinearLayout> </LinearLayout>
(strings.xml)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, StopWatchActivity!</string> <string name="app_name">StopWatch</string> <string name="chronometer_format">%s</string> <string name="start_button_label">開始</string> <string name="stop_button_label">停止</string> <string name="reset_button_label">クリア</string> </resources>