Androidタイムピッカーの例

Androidタイムピッカーの例

Androidでは、「http://developer.android.com/reference/android/widget/TimePicker.html[android.widget.TimePicker]」クラスを使用して、タイムピッカーコンポーネントをレンダリングし、事前に時間と分を選択できます。定義済みのユーザーインターフェイス。

このチュートリアルでは、現在のページのandroid.widget.TimePickerを介して、またダイアログボックスでandroid.app.TimePickerDialogを介してタイムピッカーコンポーネントをレンダリングする方法を示します。 さらに、時間ピッカーコンポーネントで時間と分を設定する方法も示します。

P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.

1. TimePicker

res/layout/main.xml」ファイルを開き、デモ用のタイムピッカー、ラベル、ボタンを追加します。

ファイル:res / layout / main.xml



    

P.S The “TimePickerDialog” is declare in code, not XML.

2. コードコード

コードのコメントを読んでください。一目瞭然です。

ファイル:MyAndroidAppActivity.java

package com.example.android;

import java.util.Calendar;
import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

public class MyAndroidAppActivity extends Activity {

    private TextView tvDisplayTime;
    private TimePicker timePicker1;
    private Button btnChangeTime;

    private int hour;
    private int minute;

    static final int TIME_DIALOG_ID = 999;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        setCurrentTimeOnView();
        addListenerOnButton();

    }

    // display current time
    public void setCurrentTimeOnView() {

        tvDisplayTime = (TextView) findViewById(R.id.tvTime);
        timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);

        // set current time into textview
        tvDisplayTime.setText(
                    new StringBuilder().append(pad(hour))
                                       .append(":").append(pad(minute)));

        // set current time into timepicker
        timePicker1.setCurrentHour(hour);
        timePicker1.setCurrentMinute(minute);

    }

    public void addListenerOnButton() {

        btnChangeTime = (Button) findViewById(R.id.btnChangeTime);

        btnChangeTime.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                showDialog(TIME_DIALOG_ID);

            }

        });

    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case TIME_DIALOG_ID:
            // set time picker as current time
            return new TimePickerDialog(this,
                                        timePickerListener, hour, minute,false);

        }
        return null;
    }

    private TimePickerDialog.OnTimeSetListener timePickerListener =
            new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int selectedHour,
                int selectedMinute) {
            hour = selectedHour;
            minute = selectedMinute;

            // set current time into textview
            tvDisplayTime.setText(new StringBuilder().append(pad(hour))
                    .append(":").append(pad(minute)));

            // set current time into timepicker
            timePicker1.setCurrentHour(hour);
            timePicker1.setCurrentMinute(minute);

        }
    };

    private static String pad(int c) {
        if (c >= 10)
           return String.valueOf(c);
        else
           return "0" + String.valueOf(c);
    }
}

P.S The “TimePickerDialog” example above, is referenced from Google Android time picker example,に若干の変更があります。

3. Demo

アプリケーションを実行してください。

1. 結果、「時間ピッカー」と「テキストビュー」は現在の時間に設定されます。

android timepicker demo1

2. 「時間の変更」ボタンをクリックすると、TimePickerDialogを介してダイアログボックスにタイムピッカーコンポーネントが表示されます。

android timepicker demo2

3. 「時間ピッカー」と「テキストビュー」の両方が選択した時間で更新されます。

android timepicker demo3

ソースコードをダウンロード

ダウンロード–Android-TimePicker-Example.zip(16 KB)