2012-06-22 3 views
4

Я пытаюсь изменить название действия из фрагмента (в данном случае это android.support.v4.app.Fragment). С этой целью я сохраняю активность в атрибуте на фрагменте, когда на фрагмент вызывается onAttach(). Согласно документам, onAttach() должен быть вызван до onCreateView(), который я использую, чтобы запросить некоторые данные, используемые для заполнения представления. Когда я запускаю поток для поиска сети, я хочу указать, что в заголовке, поэтому я пытаюсь позвонить this.activity.setTitle() из Fragment. Тем не менее, это продолжает бросать NullPointerException. Что мне здесь не хватает?Доступ к активности из фрагмента

+1

[getActivity] (http://developer.android.com/reference/android/app/Fragment.html#getActivity()) – adneal

+0

да только используйте getActivity(); ..... –

ответ

9

Вы можете получить доступ к Управлению во фрагменте, используя getActivity(). Его можно назвать безопасным, как только onActivityCreated() был вызван на Фрагмент. До этого он может отсутствовать или, возможно, не был полностью инициализирован.

Если ваша нить начинается до этого, просто отметьте факт где-то в вашем фрагменте и измените название только после того, как был вызван onActivityCreated.

+0

Это похоже на работу. Кажется довольно странным, однако, что я получаю фактический экземпляр моей Activity для onAttach(), но я не могу назвать какой-либо метод на нем. – djc

+0

Царапина, что ... похоже, onActivityCreated() даже не вызвал мой фрагмент? – djc

+0

Хорошо, я забыл аргумент для onActivityCreated(). Он называется, но когда я вызываю getActivity(). SetTitle (String) в нем, он все равно бросает исключение NullPointerException. – djc

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