从我的片段中,我需要使用findViewById()
访问view元素。如果我通过调用this.getView().findViewById()
获取视图引用,它可以工作,但是一旦我完成活动并再次尝试它停止工作。
我所做的是从LayoutInflater中保存View引用。它有效。
我想知道的是为什么它不像以前那样有效?如果在活动中,可以使用getView().findViewById().
我有点困惑。
答案 0 :(得分:1)
您可以使用getView()
,但必须确保已创建视图,而在片段生命周期中并非总是如此。
它只应该来自OnCreateView
到onDestroyView()
的通货膨胀。
保存引用是一种好方法,但在访问之前始终检查null。
获得参考的好地方是onViewCreated
。您可以在那里使用视图对象。
在这里查看更多生命周期洞察: http://www.silverbaytech.com/2014/03/24/android-fragment-lifecycle-in-detail/