尽管Pragnani的答案很接近,但其中几乎没有教育价值。此外,他的第二条陈述还有一个更合适的选择。
我应将此代码放在片段的什么位置?在onCreate()中?onCreateView()?onActivityCreated()?为什么呢?
简短的答案是:要么
onCreateView()或
onActivityCreated()将做。直到才会创建视图层次结构
onCreateView(),因此这是该片段生命周期中的最早时间,您可以膨胀视图并附加单击侦听器等。由于
onActivityCreated()将始终在之后运行
onCreateView(),所以这也是一个合适的位置。
onCreate()可以跳过该 *** 作,以利于系统临时分离片段并重新连接它,例如在保留片段时。
Pragnani指出,扩大片段的视图与扩大活动中的视图略有不同是正确的。更具体地说:片段没有定义
findViewById()方法,因此您需要在其他对象上调用它。
getActivity().findViewById()您会想要而不是使用
getView().findViewById()
。这样做的原因是,如果您将活动用于视图查找,那么当将多个具有相同视图ID的片段附加到该活动时,您会遇到麻烦。如果您在各个片段的布局中重复使用视图ID,或者显示两个显示不同数据的相同片段,就会出现这种情况。在这两种情况下,都只会返回第一个匹配项,而您确实希望在片段的扩展部分中查找视图。这正是
getView()返回的内容,即片段的根视图(您在中返回的
onCreateView()),因此适当地限制了查找的范围。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)