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

回到顶部