Android 当前时间选择器

Android 当前时间选择器,android,time,dialog,picker,Android,Time,Dialog,Picker,大家好,我正在努力改变时间选择器对话框显示时的时间的想法 以下是Android SDK参考中关于onPrepareDialog方法的引用 提供机会准备 管理对话框,然后再将其删除 展示。默认实现 通过onPrepareDialog(int, 对话框)以获得兼容性。推翻 如果您需要更新托管 对话框的状态 每次显示应用程序时。对于 例如,可能会出现一个时间选择器对话框 希望使用当前的 时间你应该打电话给警察局 超类的实现。这个 默认实现将设置此值 作为所有者的活动 对话 onCreateDialo

大家好,我正在努力改变时间选择器对话框显示时的时间的想法

以下是Android SDK参考中关于onPrepareDialog方法的引用

提供机会准备 管理对话框,然后再将其删除 展示。默认实现 通过onPrepareDialog(int, 对话框)以获得兼容性。推翻 如果您需要更新托管 对话框的状态 每次显示应用程序时。对于 例如,可能会出现一个时间选择器对话框 希望使用当前的 时间你应该打电话给警察局 超类的实现。这个 默认实现将设置此值 作为所有者的活动 对话

onCreateDialog方法将创建的dialog作为参数传递给onPrepareDialog,但如何实际更改此对话框中的小时和分钟

谢谢

好了,伙计们,我找到了答案,这是我的首选活动代码的一部分:

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可以做到这一点。

您可以尝试以下方法:

在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);

然后,当你打开时间桩时,它将始终显示当前时间。

谢谢费德里科,事实上我找到了方法。在onPrepareDialog中,我只调用((TimePickerDialog)对话框).updateTime(h,m)-h和m我实际上是从首选项中读取的,但不知道。通过这种方式,“时间选择器”对话框将在显示前读取当前时间,而不是在创建时间。