Получить контекст внутри 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 

Это возможно?

Вы можете ссылаться на внешний контекст, когда вы определяете свой DialogInterface.OnClickListener как анонимный class. Если вы работаете, вы можете использовать MyActivity.this как контекст.

Изменить – поскольку ваша активность реализует DialogInterface.OnClickListener , вы должны просто использовать this как контекст.

Если ваш DialogInterface находится в MainActivity, вы можете получить контекст, используя

 MainActivity.this.getActivityContext(); 

Btw Вы также можете реализовать DialogInterface (в вашем примере кода вы дважды написали инструменты), и тот же оператор может использоваться для получения контекста активности.

Вот как вы это делаете, если вы

  1. не хотите использовать анонимный class
  2. или что ваша деятельность / fragment реализует интерфейс напрямую.

Просто,

  1. использовать объект dialogInterface и dialogInterface его в объект Dialog
  2. затем вызовите 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
  • Twitter Текстовое поле ввода текстовых блоков Bootstrap
  • Bootstrap 3 с дистанционным модулем
  • Android: При каких обстоятельствах будет вызываться диалог, вызывающий onPause ()?
  • Получать результат от DialogFragment
  • Как использовать OpenFileDialog для выбора папки?
  • Как сохранить режим погружения в диалоговых windowsх?
  • Interesting Posts

    Как сообщить Windows 7, что приложение не нужно запускать с правами администратора?

    BAT-файл: открыть новое окно cmd и ввести код там

    Win 7 64-бит необычно высокий уровень использования RAM (7 ГБ на холостом ходу)

    Как преобразовать углы Эйлера в направленный вектор?

    Отправка файлов с помощью POST с HttpURLConnection

    Перенаправить вывод консоли в строку в java

    Ссылаясь на столбцы data.table именами, сохраненными в переменных

    Как изменить разрешение на Vista, когда он продолжает загружаться до неподдерживаемого разрешения?

    Как PostgreSQL применяет ограничение UNIQUE / какой тип индекса он использует?

    Проверка подключения к Интернету на Android

    Функциональное реактивное программирование в Scala

    Удаление символов, отличных от ASCII, из файлов данных

    Word 2010 генерировать PDF когда-нибудь имеет ошибки?

    VMWare Fusion – запуск Windows из исходного раздела Bootcamp на OS X

    Django: получить URL-адрес текущей страницы, включая параметры, в шаблоне

    Давайте будем гением компьютера.