我在我的第一应用为Android的过程中,我有一个Fragment
是被添加到我的Activity
在Activity
的onCreate()
方法。 我现在面临的问题是,我无法找到任何包含的范围内的意见Fragment
从Activity
的onCreate()
方法。
其他线程都认为,这是因为该Fragment
尚未膨胀,所以findViewById()
将用于包含的任何意见返回null 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
在Activity
的onCreate()
方法(使用findViewById()
产生一个NullPointerException
,作为Fragment
的onCreateView()
只被调用的结束后Activity
的onCreate()
使用FragmentManger
的executePendingTransactions()
加入后, Fragment
并没有帮助。
基本上,我已经被迫把问题代码在Activity
的onStart()
方法,而不是onCreate()
如onStart()
发生后的Fragment
的onCreateView()
有没有人有什么标准的做法在这里,否则我怎么可以让我的内片段-视图-访问代码的工作Activity
的onCreate()
方法?