GetActivity(), где он определен?

Я очень новичок в андроиде, и я следую этому примеру.

В коде говорится, что мы должны сделать следующие шаги, чтобы получить диалоговое окно:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage(R.string.dialog_message)
       .setTitle(R.string.dialog_title);

// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();

Но где определяется метод getActivity()?

Я не могу найти этот метод.

Ответ 1

Метод getActivity() дает контекст Activity. Вместо него вы можете использовать YourActivityName.this.

Метод getActivity() обычно используется в фрагментах, чтобы получить контекст активности, в котором они вставлены или завышены.

например,

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);

или если вы сами пишете код в своей деятельности,

AlertDialog.Builder builder = new AlertDialog.Builder(this);

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

Ответ 2

new AlertDialog.Builder() нуждается в контексте в качестве входного параметра. Поэтому попробуйте

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);

Ответ 4

Конструктор AlertDialog.Builder ожидает параметр Context. Context доступен из Activity, Service и т.д., так как все они extend Context и могут быть переданы как this.

Метод getActivity() объявлен как другие, упоминаемые в классе Fragment.

Ответ 5

В этой статье описывается, как создать AlertDialog в Fragment. в разделе "Фрагменты" вы можете получить соответствующий Activity, вызвав метод getActivity(). но в вашем случае я предполагаю, что вы делаете это в Activity. поэтому вам не нужно вызывать getActivity(). просто используйте this

AlertDialog.Builder builder = new AlertDialog.Builder(this);

Ответ 6

getActivity(); это метод андроидного фрагмента, если вы хотите отобразить диалог в своей деятельности, просто передайте this вашей активности вместо getActivity().

Ответ 7

getActivity() - это метод-член класса суперкласса, из которого вы распространяетесь. Он определен в классе Activity. infact onCreate(), onPause(), а все остальные функции также определены в родительском классе Activity.

Ответ 8

У меня была точно такая же проблема, и, наконец, я нашел то, что я действительно подозревал... Просто добавьте:

dialog.show();

... и вуаля. Вот оно. Интересно, почему это не указано в исходном примере??

Ответ 9

Обновление уровня API для Android 23.

Используйте getContext() вместо getActivity().

Ответ 10

//1. Создайте экземпляр AlertDialog.Builder со своим конструктором

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);

//2. Цепочка между различными способами настройки для установки характеристик диалога

builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);

//3. Получить AlertDialog из create()

AlertDialog dialog = builder.create();

//4. Показать AlertDialog

dialog.show();

Ответ 11

U может использовать getAppicationContext()  который ссылается на Activity (Java Class), который вы используете.

Чтобы узнать разницу между this и getApplicationContext()

нажмите эту ссылку Разница между getApplicationContext() и getActivity()