2012年1月24日火曜日

TimePickerDialog

時刻を指定したい場合は、TimePickerDialog (時刻選択ダイアログ)を使います。使い方は前回のDatePickerDialogとほとんど同じです。


TimePickerDialog

TimePickerDialogで選択した時刻を画面に表示するサンプルです。

Androidプロジェクトの設定
プロジェクト名:TimePickerDialogTest1a
ビルドターゲット:Android 2.1-update1
アプリケーション名:TimePickerDialogTest1a
パッケージ名:jp.co.triware.samples.TimePickerDialogTest1a
アクティビティーの作成:TimePickerDialogTest1aActivity
最小SDKバージョン:7

TimePickerDialogTest1aActivity.java
package jp.co.triware.samples.TimePickerDialogTest1a;

import java.util.Calendar;

import android.app.Activity;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.TextView;

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

        // 表示エリア
        final TextView tvTime = (TextView)findViewById(R.id.time_tv);

        // 初期値設定(今の時刻)
        Calendar cal = Calendar.getInstance();
        int nHour = cal.get(Calendar.HOUR_OF_DAY);
        int nMinute = cal.get(Calendar.MINUTE);

        // TimePickerDialogの設定
        final TimePickerDialog timePickerDialog = new TimePickerDialog(this,
            new OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    tvTime.setText(hourOfDay + " : " + minute);
                }
            }, nHour, nMinute, true);

        // TimePickerDialogを呼び出すボタン
        final Button btnTime = (Button)findViewById(R.id.time_btn);
        btnTime.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                timePickerDialog.show();
            }
        });
    }
}

TimePickerDialog()の最後の引数にtrueを指定して(36行目)、24時間表記で時刻を表示するようにしています。falseの場合は「午前」「午後」で時刻を表示します。午前/午後はダイアログ上の時刻表示の指定だけであって、選択した時刻は24時間表記になります(例えば午後1時であれば13になります)。

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"
    >
    <TextView
        android:id="@+id/time_tv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="40sp"
        android:layout_weight="1"
        />
    <Button
        android:id="@+id/time_btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="時 刻"
        />
</LinearLayout>

実行結果
TimePickerDialog()の引数をtrueからfalseに変更した結果です。「午後」をクリックすると「午前」に変わります。

0 件のコメント:

コメントを投稿