Android:将活动的onCreate()代码放在哪里?
我将所有活动都转换为片段,以便可以在ViewPager中使用它们。
我已经搜索过了,但是找不到满意的答案,所以这就是为什么我在这里问这个问题。
在我的活动中,我已经在该onCreate()
方法中编写了一些代码。例如,我调用some
findViewById()
以便将一些xml按钮链接到我的Activity。我还使方法中的所有视图在onCreate()
,设置OnClickListener()
,TextView
用文本填充和删除Notification时不可见onCreate()
。
我的问题是:我应将此代码放在片段的什么位置?在onCreate()中?onCreateView()?onActivityCreated()?为什么呢?
提前谢谢了!
回答:
尽管Pragnani的答案很接近,但其中几乎没有教育价值。此外,他的第二条陈述还有一个更合适的选择。
我应将此代码放在片段的什么位置?在onCreate()中?onCreateView()?onActivityCreated()?为什么呢?
简短的答案是:要么onCreateView()
或onActivityCreated()
将做。直到才会创建视图层次结构onCreateView()
,因此这是该片段生命周期中的最早时间,您可以膨胀视图并附加单击侦听器等。由于onActivityCreated()
将始终在之后运行onCreateView()
,所以这也是一个合适的位置。onCreate()
可以跳过该操作,以利于系统临时分离片段并重新连接它,例如在保留片段时。
Pragnani指出,扩大片段的视图与扩大活动中的视图略有不同是正确的。更具体地说:片段没有定义findViewById()
方法,因此您需要在其他对象上调用它。
getActivity().findViewById()
您会想要而不是使用
。这样做的原因是,如果您将活动用于视图查找,那么当将多个具有相同视图ID的片段附加到该活动时,您会遇到麻烦。如果您在各个片段的布局中重复使用视图ID,或者显示两个显示不同数据的相同片段,就会出现这种情况。在这两种情况下,都只会返回第一个匹配项,而您确实希望在片段的扩展部分中查找视图。这正是getView()
返回的内容,即片段的根视图(您在中返回的onCreateView()
),因此适当地限制了查找的范围。
以上是 Android:将活动的onCreate()代码放在哪里? 的全部内容, 来源链接: utcz.com/qa/422730.html