cod*_*ody 11 android dialog timepicker android-preferences sharedpreferences
我有一个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);
}
}
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
Lar*_*oid 48
在我偶然发现这个问题之前,我没有注意到这个问题.有一个简单的解决方案:当用户完成更改我的应用程序中的日期和时间时,我只需调用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();
Run Code Online (Sandbox Code Playgroud)
在此之后,我将time.toMillis(false)值存储在我的表的相应列中.
我不知道你的onDialogClosed(boolean positiveResult)是否仍然可以访问timepicker.如果没有,找到另一个回调,当它仍然存在时使用.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
36361 次 |
| 最近记录: |