タブレイアウト内で、アクティビティからフラグメントへの変数を渡す必要があります。私は、タブレイアウトの初期化メソッドによって引数バンドルをフラグメントに渡す方法が2つあることがわかりました。引数bundleをフラグメントに渡す
- 静的な方法を作成し、詳細を提供することによって。
FragmentPagerAdapter
内部フラグメントのインスタンスを作成する。しかし、私はこれがどのように機能するかいくつかの疑問を持っています。
私はこれを作成した場合、これは次のとおりです。
ここpublic class SectionsPagerAdapter extends FragmentPagerAdapter {
MyFragment myFragment;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
myFragment = new MyFragment();
Bundle args = new Bundle();
args.putString("id", id);
myFragment.setArguments(args);
}
// ...
}
私はフラグメントのインスタンスを作成し、その引数のあとがきを設定しています。
そして、私はnewInstance()
方法でこのような何か、それを作成した場合:
public static MyFragment newInstance(String id) {
MyFragment myFragment = new MyFragment();
Bundle args = new Bundle();
args.putString("id", id);
myFragment.setArguments(args);
return myFragment;
}
をいくつかの疑問:onCreate()
またはonCreateView()
が
と呼ばれるのでしょうか?アフターライン
new MyFragment()
以降で、バンドルを設定する前にはどうなりますか?getArguments
がnullを返す可能性はありますか?私は同じことをやっています。
new MyFragment()
の呼び出し後にargs
を設定します。どのくらい遅れて議論を立てることができますか?new MyFragment()
コールの後に引数を正確に設定する必要がありますか?
申し訳ありませんが、私はいくつかの愚かな質問をしました。しかし、私はFragmentsには新しいです。ありがとう:)
引数を2回設定する必要はありません。 'newInstance'を使用してフラグメントをインスタンス化します:' myFragment = MyFragment.newInstance(id); ' –
@bigdestroyer引数を2回設定しません。私は、器械で断片を初期化する良い方法は何かを尋ねています – kirtan403
ああ、申し訳ありません。次に、静的メソッドの方法を使用する必要があります。 –