текущее время от времени сборщик - PullRequest
2 голосов
/ 20 мая 2011

Привет всем. Я борюсь с идеей изменения диалогового окна выбора времени во времени, когда оно отображается.

Вот цитата из справочника Android SDK относительно onPrepareDialog method

Предоставляет возможность подготовить управляемый диалог до его показано на рисунке. Реализация по умолчанию звонки через onPrepareDialog (int, Диалог) для совместимости. Override это если вам нужно обновить управляемый диалог, основанный на состоянии приложение каждый раз, когда это показано. За Например, диалог выбора времени может хочу быть в курсе текущих время. Вы должны позвонить на реализация суперкласса. реализация по умолчанию установит это Деятельность в качестве владельца деятельности на Диалог

.

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 Ответ

4 голосов
/ 20 мая 2011

Вы можете попробовать что-то вроде этого:

В вашем 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);

Затем, когда вы открываете пикет времени, он всегда будет показывать текущее время.

...