【AndroidのViewを制する】 TimePickerを使いこなして時間選択を行う
Androidで時間を選択するためにTimePickerがあります。
TimePickerの選択モードを切り替える
TimePickerには2つの選択モードがあります。スピナーモードとクロックモードです。
スピナーモードでは時間をスピナーで表示し、時間を選択することができます。
クロックモードではマテリアルスタイルの時計から時間を選択することができます。
API Level 21以前は、スピナーモードしか使用できませんでした。
API Level 21以降で、マテリアルテーマが選択されている場合デフォルトのレイアウトはクロックモードです。
このモードはTimePickerのXML属性の一つであるtimePickerModeで変更することができます。
<!-- スピナーモード--> <TimePicker android:id="@+id/time_picker" android:timePickerMode="spinner" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <!-- クロックモード--> <TimePicker android:id="@+id/time_picker" android:timePickerMode="clock" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
TimePicker#setHourとTimePicker#getHour
TimePicker#setHourは選択中の時を変更することができます。TimePicker#getHourは選択中の時を取得することができます。
TimePicker timePicker = new TimePicker(this); // 0時に設定 timePicker#setHour(0);
TimePicker#setMinuteとTimePicker#getMinute
TimePicker#setHourは選択中の分を変更することができます。TimePicker#getHourは選択中の分を取得することができます。
TimePicker timePicker = new TimePicker(this); // 0分に設定 timePicker#setMinute(0);
TimePicker#setCurrentHourとTimePicker#getCurrentHour
TimePicker#setCurrentHourは選択中の時を変更することができます。TimePicker#getCurrentHourは選択中の時を取得することができます。
API Level 23で非推奨になっています。
TimePicker timePicker = new TimePicker(this); // 0時に設定 timePicker#setCurrentHour(0);
TimePicker#setCurrentMinuteとTimePicker#getCurrentMinute
TimePicker#setCurrentHourは選択中の分を変更することができます。TimePicker#getCurrentHourは選択中の分を取得することができます。
API Level 23で非推奨になっています。
TimePicker timePicker = new TimePicker(this); // 0分に設定 timePicker#setCurrentMinute(0);
TimePicker#setEnabledとTimePicker#isEnabled
TimePicker#setEnabledは時間選択機能の有効無効を設定するメソッドです。引数にtrueを渡すと時間を選択することができますが、falseを渡すと時間を選択することができません。
また、TimePicker#isEnabledは、時間選択機能の有効無効を取得するメソッドです。
TimePicker timePicker = new TimePicker(this); // スピナーの選択を無効にする TimePicker.setEnabled(true);
TimePicker#setIs24HourViewとTimePicker#is24HourView
TimePicker#setIs24HourViewは時間表示を24時間表記に設定するメソッドです。trueを渡すと24時間表記になります、falseを渡すと12時間表記になり、 午前/午後を選択するためのボタンまたはスピナーが表示されます。
また、TimePicker#is24HourViewは、時間表示が24時間表記かどうかを取得するメソッドです。
TimePicker timePicker = new TimePicker(this); // 12時間表記に変更する TimePicker.setIs24HourView(true);
TimePicker#setOnTimeChangedListener
TimePicker#setOnTimeChangedListenerは選択された時間が変更された時に呼ばれるコールバックインターフェースを設定するメソッドです。TimePicker TimePicker = new TimePicker(this); timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { Log.d("you", hourOfDay + "時 " + minute +"分"); } });