我正在为 Android 制作我的第一个应用程序,并且我在's方法中Fragment
添加了一个。我面临的问题是我无法找到from的方法中包含的任何视图。Activity
Activity
onCreate()
Fragment
Activity
onCreate()
其他线程建议这是因为Fragment
尚未膨胀,因此findViewById()
对于包含在Fragment
.
这就是我的意思:
活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("activity onCreate");
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
return;
}
initialiseUI(); // Fragment added to Activity
System.out.println("end of activity onCreate");
}
分段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
System.out.println("fragment onCreateView");
return inflater.inflate(R.layout.event_log, container, false);
}
这将打印结果:
活动 onCreate 活动结束 onCreate 片段 onCreateView
由于这个顺序,任何访问'方法Fragment
中的视图的尝试(使用)都会产生一个,因为's只会在 's 结束后被调用。Activity
onCreate()
findViewById()
NullPointerException
Fragment
onCreateView()
Activity
onCreate()
添加后使用FragmentManger
's无济于事。executePendingTransactions()
Fragment
基本上,我被迫将问题代码放在Activity
'sonStart()
方法中而不是 's 方法中onCreate()
,就像在'sonStart()
之后发生的那样。Fragment
onCreateView()
有人知道这里的标准做法是什么,或者我如何使我的片段视图访问代码在Activity
'sonCreate()
方法中工作?