+-

我有一个DialogPreference实现了一个简单的TimePicker.OnTimeChangedListener(见下文).通过单击/ – 按钮设置时间非常有效.但是我不知道如何在用户输入时直接进入文本字段时保存timepicker的状态.访问当前的文本字段值就足够了,所以我可以将它保存在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);
}
}
}
// ...
}
最佳答案
在我偶然发现这个问题之前,我没有注意到这个问题.
有一个简单的解决方案:
当用户在我的应用程序中更改日期和时间时,我只需调用finish()并在onPause()或onStop()或onDestroy()中执行此操作:
有一个简单的解决方案:
当用户在我的应用程序中更改日期和时间时,我只需调用finish()并在onPause()或onStop()或onDestroy()中执行此操作:
// force the timepicker to loose focus and the typed value is available !
timePicker.clearFocus();
// re-read the values, in my case i put them in a Time object.
time.hour = timePicker.getCurrentHour();
time.minute = timePicker.getCurrentMinute();
在此之后,我将time.toMillis(false)值存储在我的表的相应列中.
我不知道你的onDialogClosed(boolean positiveResult)是否仍然可以访问timepicker.如果没有,找到另一个回调,当它仍然存在时使用.
希望这可以帮助.
点击查看更多相关文章
转载注明原文:Android:如何在输入时从TimePicker获取时间 - 乐贴网