当前时间选择器

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 我实际上是从首选项中读取的,但没关系。这样,时间选择器对话框将在显示之前读取当前时间,而不是创建时间。

以上是关于当前时间选择器的主要内容,如果未能解决你的问题,请参考以下文章

如何从角度材料日期选择器获取当前时间?

如何在不滚动选择器视图的情况下选择当前时间

Perl CGI 日期和时间选择器,自动填充当前日期和时间

elementui中时间选择器一个框,校验不能超过当前时间

时间日期选择器

时间,日期选择器