Контекст в EnableListAdapter - PullRequest
       42

Контекст в EnableListAdapter

1 голос
/ 29 апреля 2011

Я создал класс ExpandableListAdapter, и мне нужно отправить ему контекст из действия, которое обращается к нему.

MyActivity.class:

MenuExpandableListAdapter.useInstanceContext(getApplicationContext());

MyExpandableListAdapter.class:

static Context context;
public static void useInstanceContext(Context applicationContext) {
    context = applicationContext;
}

Приведенный выше код работает, ноэто также работает:

MenuExpandableListAdapter.useInstanceContext(this.getApplicationContext());

Какая разница?Это хороший способ передать контекст?Я все еще пытаюсь полностью понять контекст.

Ответы [ 3 ]

2 голосов
/ 29 апреля 2011

Контекст необходим для того, чтобы получить доступ к ресурсам и некоторым другим вещам.Таким образом, контексты приложения и действия работают.Но хорошая практика тесно связана с мельчайшей вещью, которая работает, то есть с деятельностью в вашем случае.Итак, я бы предложил для вас новый способ:

MenuExpandableListAdapter.useInstanceContext(this);

Также в вашем примере нет разницы между вызовами.this это просто ссылка на текущий объект.

1 голос
/ 29 апреля 2011

this относится к объекту, который в данный момент выполняет код, если метод объявлен в том же классе и не является статическим, вызовить то же самое:

getApplicationContext()

и

this.getApplicationContext()

(То же относится и к ученикам)

0 голосов
/ 29 апреля 2011
MenuExpandableListAdapter.useInstanceContext(getApplicationContext());

Метод getApplicationContext () будет вызываться с помощью неявного вызова / текущего объекта.

в секунду вы даете вызывающий / текущий объект явно, потому что это специальный объект, который всегда ссылается на вызывающий объект.

Я предлагаю вам использовать этот

MenuExpandableListAdapter.useInstanceContext(this.getApplicationContext());

потому что согласно моему чтению это хорошая практика.

...