Ошибка при попытке отобразить диалог - PullRequest
0 голосов
/ 27 сентября 2011

Возникла эта проблема при попытке отобразить диалоговое окно со средством выбора времени, в котором выдается исключение, если я инициализирую TimePickerDialog с контекстом, возвращаемым из getBaseContext(), а не с использованием ссылки this на текущее действие. Так что этот код в порядке:

@Override
protected Dialog onCreateDialog( int id )
{
   return new TimePickerDialog( this , mTimeSetListener, hr, min, false);
}

но этот код выдает исключение

protected Dialog onCreateDialog( int id )
{
   return new TimePickerDialog( getBaseContext(), mTimeSetListener, hr, min, false);
}

Если я хочу отобразить тост, я бы использовал

    Toast.makeText( getBaseContext() , ... 

и это тоже работает.

Мой вопрос: я бы подумал, что контекст, в котором я хочу отображать диалог, будет baseContext, так почему тост работает с этим, но диалог требует ссылки на «это», то есть текущее действие как Я бы подумал, что они оба очень похожи в том, как они работают?

1 Ответ

1 голос
/ 27 сентября 2011

Не используйте getBaseContext(), если вы не знаете, что делаете, и у вас есть очень конкретная и конкретная причина для его использования.

Вам не нужно это для Toast, и вам не нужноэто за Dialog.Что бы вы ни использовали Activity, это идеально подходит Context для создания Toasts и Dialogs, поэтому просто используйте this.

...