Возникла эта проблема при попытке отобразить диалоговое окно со средством выбора времени, в котором выдается исключение, если я инициализирую 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
, так почему тост работает с этим, но диалог требует ссылки на «это», то есть текущее действие как Я бы подумал, что они оба очень похожи в том, как они работают?