Androidでは、「http://developer.android.com/reference/android/widget/TimePicker.html[android.widget.TimePicker」クラスを使用すると、時間ピッカーコンポーネントをレンダリングして、定義されたユーザーインターフェイス。

このチュートリアルでは、現在のページのhttp://developer.android.com/reference/android/widget/TimePicker.html[android.widget.TimePicker]を介して時間ピッカーコンポーネントをレンダリングする方法と、

android.app.TimePickerDialog

さらに、時間選択コンポーネントで時間と分を設定する方法も示します。


P.SこのプロジェクトはEclipse 3.7で開発され、Android 2.3.3.

でテストされています

1. TimePicker



res/layout/main.xml

“ファイルを開き、デモ用の時間ピッカー、ラベル、ボタンを追加します。


File:res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout__width="fill__parent"
    android:layout__height="fill__parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnChangeTime"
        android:layout__width="wrap__content"
        android:layout__height="wrap__content"
        android:text="Change Time"/>

    <TextView
        android:id="@+id/lblTime"
        android:layout__width="wrap__content"
        android:layout__height="wrap__content"
        android:text="Current Time (H:M): "
        android:textAppearance="?android:attr/textAppearanceLarge"/>

    <TextView
        android:id="@+id/tvTime"
        android:layout__width="wrap__content"
        android:layout__height="wrap__content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge"/>

    <TimePicker
        android:id="@+id/timePicker1"
        android:layout__width="wrap__content"
        android:layout__height="wrap__content"/>

</LinearLayout>

__P.S “TimePickerDialog`”はXMLではなくコードで宣言されています。

2.コードコード

コードのコメントを読んで、それは自明でなければなりません。


File:MyAndroidAppActivity.java

package com.mkyong.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上記の「TimePickerDialog」の例は、http://developer.android.com/resources/tutorials/views/hello-timepicker.html[Google Androidタイムピッカーの例](

)から少し変更されています。

デモ

アプリケーションを実行します。

{空} 1。結果、「時間選択」および「テキストビュー」が現在の時刻に設定されます。


android-timepicker-demo1、title = "android-timepicker-demo1"、width = 355、height = 480

{空} 2。 “Change Time”ボタンをクリックすると、TimePickerDialogを介してダイアログボックスに時刻選択コンポーネントが表示されます。


android-timepicker-demo2、title = "android-timepicker-demo2"、width = 355、height = 480

{空} 3。 「時間選択」と「テキストビュー」の両方が選択された時間で更新されます。


android-timepicker-demo3、title = "android-timepicker-demo3"、width = 355、height = 480

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

ダウンロードする –

Android-TimePicker-Example.zip

(16 KB)