当前时间选择器
Posted
技术标签:
【中文标题】当前时间选择器【英文标题】:current time to time picker 【发布时间】:2011-05-20 15:55:33 【问题描述】:大家好,我正在努力改变时间选择器对话框的显示时间。
这是 android SDK 参考中关于 onPrepareDialog 方法的引用
提供了一个准备的机会 托管对话框之前 显示。默认实现 调用 onPrepareDialog(int, 对话框)的兼容性。覆盖 如果您需要更新托管 基于状态的对话 应用程序每次显示。为了 例如,时间选择器对话框可能 想用当前更新 时间。你应该打电话给 超类的实现。这 默认实现将设置这个 Activity 作为所有者 Activity 上 对话框
.
onCreateDialog 方法将创建的对话框作为其参数传递给 onPrepareDialog,但我如何实际更改此对话框中的小时和分钟?
谢谢
好的,伙计们,我找到了答案,这是我的 PreferenceActivity 代码的一部分:
protected void onPrepareDialog(int id, Dialog dialog)
if (id == DIALOG_MAX_AGE)
SharedPreferences myPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
int time = myPref.getInt(getString(R.string.pr_maxtmagekey), 15);
int h = time / 100;
int m = time - h * 100;
((TimePickerDialog)dialog).updateTime(h, m);
updateTime 做这件事。
【问题讨论】:
【参考方案1】:你可以试试这样的:
在您的 onCreate() 或您需要的任何地方,使用典型的 Java 代码获取当前时间:
Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
然后,当您设置时间选择器时,您可以:
... new DatePickerDialog(this, aDateListener, year, month, day);
然后,当您打开时间纠察队时,它将始终显示当前时间。
【讨论】:
感谢 Federico,实际上我找到了方法。在 onPrepareDialog 中,我简单地调用了 ((TimePickerDialog)dialog).updateTime(h,m) - h 和 m 我实际上是从首选项中读取的,但没关系。这样,时间选择器对话框将在显示之前读取当前时间,而不是创建时间。以上是关于当前时间选择器的主要内容,如果未能解决你的问题,请参考以下文章