Получить контекст внутри onClick (DialogInterface v, int buttonId)?
Получение контекста внутри onClick(View view)
, обратный вызов для кнопки onClickListener()
, прост:
view.getContext()
Но я не могу понять, как получить контекст внутри onClick(DialogInterface v, int buttonId)
, обратный вызов для диалогового windows onClickListener
public class MainActivity extends Activity implements android.content.DialogInterface.OnClickListener
Это возможно?
- Модифицированный фон загрузочной ленты Twitter не исчезает
- WPF показывает диалог перед основным окном
- как полностью уничтожить загрузочное модальное окно?
- Как отобразить диалоговое окно только при успешном заполнении формы
- Диалог с прозрачным фоном в Android
- Как создать пользовательский диалог с закругленными углами в android
- Диалоговое окно VBA для выбора диапазона в разных книгах
- Как создать и показать общий диалог (ошибка, предупреждение, подтверждение) в JavaFX 2.0?
- Как отклонить диалог, нажав на него вне диалога?
- Как открыть встроенный диалог копирования файлов?
- Как отобразить диалоговое окно предупреждения на Android?
- Как отобразить диалог из службы
- Открыть диалоговое окно каталога
Вы можете ссылаться на внешний контекст, когда вы определяете свой DialogInterface.OnClickListener
как анонимный class. Если вы работаете, вы можете использовать MyActivity.this
как контекст.
Изменить – поскольку ваша активность реализует DialogInterface.OnClickListener
, вы должны просто использовать this
как контекст.
Если ваш DialogInterface находится в MainActivity, вы можете получить контекст, используя
MainActivity.this.getActivityContext();
Btw Вы также можете реализовать DialogInterface (в вашем примере кода вы дважды написали инструменты), и тот же оператор может использоваться для получения контекста активности.
Вот как вы это делаете, если вы
- не хотите использовать анонимный class
- или что ваша деятельность / fragment реализует интерфейс напрямую.
Просто,
- использовать объект
dialogInterface
иdialogInterface
его в объектDialog
- затем вызовите
getContext()
Пример с DialogInterface.OnClickListener :
DialogInterface.OnClickListener foo = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { Dialog dialog = (Dialog) dialogInterface; Context context = dialog.getContext(); // do some work with context } };
Это также будет работать и для следующих интерфейсов, просто используйте первый DialogInterface dialogInterface
и DialogInterface dialogInterface
.
- DialogInterface.OnCancelListener
- DialogInterface.OnDismissListener
- DialogInterface.OnKeyListener
- DialogInterface.OnMultiChoiceClickListener
- DialogInterface.OnShowListener