TimePickerDialogの表示
TimePickerDialogを使ってみたので、とりあえずメモ。
private int setHour; private int setMinutes; /** * タイマー設定ボタンのClickイベントハンドラ * @param view */ public void timerSettingButtonOnClick(View view) { TimePickerDialog tpDialog = new TimePickerDialog(this, timeSetListener, 0, 0, true); tpDialog.show(); } /** * TimePickerDialogのコールバック * */ private TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { setHour = hourOfDay; setMinutes = minute; TextView text = (TextView) findViewById(R.id.setTimeTextView); text.setText(setZeroPad(hourOfDay) + ":" + setZeroPad(minute)); } };
メイン画面のボタンをクリック時の処理でTimePickerDialogを生成します。
TimePickerDialogの引数は
//(コンテキスト, コールバック, 初期の設定時間, 初期の設定分, 24時間表示) TimePickerDialog tpDialog = new TimePickerDialog(this, timeSetListener, 0, 0, true);
といった感じ。
第5引数をtrueにすると、Dialog内に「AM(PM)」ボタンが増えます。
インスタンスを生成したらtpDialog.show();で表示します。
それからコールバックを呼ぶ必要があるので、
TimePickerDialog.OnTimeSetListenerインターフェースが用意されているのでそれを使用。
private TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { } }
TimePickerDialog.OnTimeSetListenerを記述すると自動でonTimeSetが補完されます。
その引数のhourOfDayとminuteは、それぞれ画面で設定した時間と分になります。
onTimeSetメソッドはTimePickerDialogの設定ボタンをクリックしたときに処理されるので、
メイン画面に、設定した時間を表示してみました。
24時間表示trueの場合のTimePickerDialog↓
24時間表示trueの場合のTimePickerDialog↓