2016-04-20 2 views
-3

У меня возникли проблемы с пониманием того, как использовать методы базового класса в классе Activity.Как получить getContext() в действии

Моя деятельность, как это:

public class MyActivity extends AppCompatActivity 

В этом классе я не могу получить доступ к getContext(), но я могу получить доступ к getContentResolver() из ContextWrapper класса, который расширяет класс контекста.

Как это возможно, если у меня есть доступ к дочернему классу, тогда логически я должен иметь возможность получить доступ к его родительским методам.

Спасибо!

+2

* getContentResolver(), который расширяет класс Context. * Да? вы проверили, что такое базовый класс Activity? – Selvin

+0

Ваша деятельность - это контекст. – cyroxis

+0

Не расширяйте 'AppCompatActivity', расширяйте' BaseActivity'. –

ответ

4

В этом классе я не могу получить доступ к getContext()

Это потому, что there is no getContext() method on AppCompatActivity или любому из его суперкласса. Такой метод был бы бессмысленным, поскольку Activity- a Context.

Взгляните на иерархии классов:

enter image description here

2

Деятельность являются контексты (или, по крайней мере, они наследуют от контекста).

Вместо использования getContext() вы можете использовать только MyActivity.this.

Надежда, что помогает :)

Смежные вопросы