libro
www.tuyano.com
Google androidプログラミング入門

さまざまなGUI部品を使ってみよう! (7/7)

作成:2010-06-17 17:18
更新:2010-06-17 17:18

■TimePickerDialogによる時刻ダイアログ

日付があれば、当然、時刻もあります。時刻のダイアログは、「TimePickerDialog」というクラスとして用意されています。これは以下のような形でインスタンス作成します。
new TimePickerDialog( [Context], [TimePickerDialog.OnTimeSetListener],
    時の値, 分の値, 真偽値 )
第1引数は、例によって「this」を指定しましょう。第2引数には、時刻をセットした時のイベント処理をするイベントリスナーが用意されます。第3、4引数はデフォルトの時分の値です。第5引数は、24時間表示にするかどうかを指定する真偽値になります。

※TimePickerDialog.OnTimeSetListenerの作成

このTimePickerDialogのイベント処理を行うのが「TimePickerDialog.OnTimeSetListener」というクラスです。これは以下のように作成します。
new TimePickerDialog.OnTimeSetListener(){
    @Override
    public void onTimeSet(TimePicker view, int h, int m) {
        ……時刻の処理……
    }
};
基本的には、先ほどのOnDateSetListenerと同じような形ですね。日時を設定したときに実行される「onTimeSet」というメソッドを1つ持っています。これは引数にTimePickerインスタンスと、設定された時分の値が渡されます。これらを使い、現在の時刻を利用した処理を作成すればいいわけです。

では、これも簡単なサンプルをあげておきましょう。下の例は、実行すると時刻ダイアログを画面に表示するというものです。時刻を設定すると、その時刻がTextViewに表示されます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package jp.tuyano;

import android.app.*;
import android.os.Bundle;
import android.widget.*;

public class SampleApp extends Activity {
	private TextView text1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		text1 = (TextView)this.findViewById(R.id.text);
		
		TimePickerDialog.OnTimeSetListener listener =
			new TimePickerDialog.OnTimeSetListener(){

			@Override
			public void onTimeSet(TimePicker view, int h, int m) {
				text1.setText("時刻:" + h + "時" + m + "分");
			}
		};
		TimePickerDialog timePicker =
			new TimePickerDialog(this,listener,0,0,true);
		timePicker.show();
	}
}

※関連コンテンツ

「Google androidプログラミング入門」に戻る