5
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 

Скажем, если мы называемЕсть ли разница между getContext of Fragment и getContext контейнера, переданным в onCreateView of Fragment?

fragment.getContext() и container.getContext мы получим тот же результат, принимающую активности?

Также view.getContext() всегда возвращает Activitycontext или может он вернуть какой-либо другой вид context?

ответ

2

Класс деятельности в android расширяет класс контекста. Таким образом, в основном деятельность является контекстом. Но контекст может не быть активным.

fragment.getContext() вернет контекст контейнера, к которому он прикреплен. Итак, да container.getContext() будет иметь те же результаты, что и у fragment.getContext() т. Е. Активности хозяина.

Когда экземпляр ViewGroup создан, надуватель передает контекст этой активности к нему. Значения container.getContext() вернут тот же контекст.

fragment.getActivity() будет возвращать деятельность, к которой он прикреплен, с которым снова является контекст. Когда фрагмент отделен от действия, он возвращает значение null. И при прикреплении он также возвращает то же самое, что и getContext()

И о вашем последнем вопросе view.getContext() возвращает контекст, в котором он запущен. Просмотр не расширяет Контекстный класс, infact, когда они созданы, им нужен объект контекста в качестве параметра. Поэтому, когда вы создаете представление внутри действия, вам необходимо передать Context. И когда вы вызываете view.getContext(), вы получите тот же контекст, который вы передали, когда вы его создали.

+0

поэтому мы можем передать «контекст приложения» для просмотра при его создании? – q126y

+0

вы можете передать 'getContext()' или 'getActivity(). GetApplicationContext()' при создании представлений в вашем приложении. но обычно представления создаются в XML, а надуватель - все остальное. –

+0

«Итак, yes container.getContext() будет иметь те же результаты, что и для фрагмента.getContext() ie., Host activity." Но если 'container' был завышен с использованием« контекста приложения », у нас был бы другой контекст для' fragment.getcontext() 'и' container.getContext' – q126y

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

  • Нет связанных вопросов^_^