私は Android 用の最初のアプリをFragment作成中Activityです。私が直面している問題は、fromのメソッド内に含まれるビューが見つからないことです。ActivityonCreate()FragmentActivityonCreate()
他のスレッドは、これは が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でのビューに ( を使用して) アクセスしようとすると、 が生成されます。これは、 がの の終了後にのみ呼び出されるためです。ActivityonCreate()findViewById()NullPointerExceptionFragmentonCreateView()ActivityonCreate()
を追加した後に をFragmentManger使用しても役に立ちません。executePendingTransactions()Fragment
基本的に、問題のコードを の代わりに のメソッドに入れることを余儀なくされActivityました。onStart()onCreate()onStart()FragmentonCreateView()
ここでの標準的な慣行は何か、またはフラグメントビューにアクセスするコードをActivity'sonCreate()メソッド内で機能させる方法はありますか?