2

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

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

提供在显示之前准备托管对话框的机会。默认实现调用 onPrepareDialog(int, Dialog) 以实现兼容性。如果您需要在每次显示时根据应用程序的状态更新托管对话框,请覆盖此选项。例如,时间选择器对话框可能希望使用当前时间进行更新。您应该调用超类的实现。默认实现会将此 Activity 设置为 Dialog 上的所有者 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 做的事情。

4

1 回答 1

4

你可以尝试这样的事情:

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

然后,当您打开时间纠察队时,它将始终显示当前时间。

于 2011-05-20T16:22:04.743 回答