プロフィール

Epic's Garden

Author:Epic's Garden
初心者による、初心者のための解説ブログ。
現在、アプリ公開中!
サークル「Epic's Garden」として活動してます。

カテゴリ

最新記事

最新コメント

月別アーカイブ

アクセスカウンター

ブログランキング

にほんブログ村 IT技術ブログへ

twitter

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文:

アプリ・ゲーム開発らぼ(旧Androidアプリ開発らぼ)
様々なプラットフォーム向けのアプリ開発らぼです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

開始、終了ボタン付きタイマーの作成
CountDownTimerの使い方の続きです。
今回はカウントダウンのスタートボタンと終了ボタンを設置する方法を解説します。

以下のようにプロジェクトを変更してください。

MainActivity.java


package com.epicsgarden.countdowntimer;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    public MyCountDownTimer cdt;
    public TextView time;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        time=(TextView)findViewById(R.id.time);
        cdt = new MyCountDownTimer(30*1000, 100);
        cdt.start();

        Button btn1 = (Button)findViewById(R.id.start);
        btn1.setOnClickListener(new View.OnClickListener() { //・・・【1】
            public void onClick(View v) {
                cdt.cancel();
                cdt = new MyCountDownTimer(30*1000, 100);
                cdt.start();
            }
        });

        Button btn2 = (Button)findViewById(R.id.finish);
        btn2.setOnClickListener(new View.OnClickListener() { //・・・【2】
            public void onClick(View v) {
                cdt.cancel();
                time.setText("カウントダウン終了");
            }
        });

    }

    public class MyCountDownTimer extends CountDownTimer{

        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onFinish() {
            time.setText("カウントダウン終了");
        }

        @Override
        public void onTick(long millisUntilFinished) {
            if(millisUntilFinished/1000%60>=10){
                time.setText(Long.toString(millisUntilFinished/1000/60) + ":" + Long.toString(millisUntilFinished/1000%60));
            }else{
                time.setText(Long.toString(millisUntilFinished/1000/60) + ":0" + Long.toString(millisUntilFinished/1000%60));
            }
        }
    }

}


activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/time"
        android:textSize="30sp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/start"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:text="@string/s"
            android:layout_weight="150" />

        <Button
            android:id="@+id/finish"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:text="@string/f"
            android:layout_weight="150" />

    </LinearLayout>
</RelativeLayout>


string.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">CountDownTimer</string>
    <string name="action_settings">Settings</string>
    <string name="s">Start</string>
    <string name="f">Finish</string>

</resources>


【1】の部分でStartボタンの設定をしています。ボタンを押すとcdtが一度キャンセルされてから、タイムを設定しスタートするようになっています。
ここで最初にcdt.cancel()を行わないとStartボタンを連続で押した時にカウントダウンが重複してタイマーがうまく動かなくなるので気を付けてください。
【2】の部分でFinishボタンの設定をしています。ボタンを押すとcdtがキャンセルされ、タイムが表示されていた所に「カウントダウン終了」と出てくるようになっています。

ボタンがちゃんと動作するか実際に試してみてください。

CountDownTimer03.jpg

CountDownTimer04.jpg


次はスタートボタンと終了ボタンの他に、一時停止ボタンも設置する方法について書いていきます。
スポンサーサイト
コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://yumenomaterial.blog.fc2.com/tb.php/74-18fd037b
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。