私は Android 用の最初のアプリをFragment
作成中Activity
です。私が直面している問題は、fromのメソッド内に含まれるビューが見つからないことです。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
'sonCreate()
メソッド内で機能させる方法はありますか?