単純なTimePicker.OnTimeChangedListenerを実装するDialogPreferenceがあります(以下を参照)。+/-ボタンをクリックして時間を設定するとうまくいきます。しかし、ユーザーがテキストフィールドに直接時刻を入力したときのタイムピッカーの状態を保存する方法がわかりません。現在のテキストフィールド値にアクセスするだけで十分である可能性があるため、onDialogClosedで永続化することができます。しかし、timePicker.getCurrentHour()はそれを行いません。助けてください...
public class TimePreference extends DialogPreference implements
TimePicker.OnTimeChangedListener {
// ...
@Override
public void onTimeChanged(TimePicker view, int hours, int minutes) {
selectedHours = hours;
selectedMinutes = minutes;
}
@Override
public void onDialogClosed(boolean positiveResult) {
if(positiveResult) {
String timeString = selectedHours + ":" + selectedMinutes;
if(isPersistent()) {
persistString(timeString);
}
}
}
// ...
}