Fragment
を保持するViewPager
があります。 ViewPager
は、ViewPager - FragmentStatePagerAdapterとローテーションの処理
アダプターのgetItem
メソッドのアダプターを持っています。
@Override
public Fragment getItem(int position) {
String text= dbHelper.getText(position);
CustomFragment frg = new CustomFragment(text);
return frg;
}
アダプターのgetItem
メソッドでフラグメントを初期化しています。
すべてが完全に機能します。
しかし向きが変わった場合、初期化されたフラグメントを復元する代わりに、CustomFragment
がデフォルトのコンストラクタCustomFragment
を使用して作成されます。これにより、ダミーデータを含むフラグメントが作成されます。
この理由は何ですか? 以前に作成したフラグメントを復元するにはどうすればよいですか?
public static CustomFragment newInstance(String text) {
Bundle arguments = new Bundle();
arguments.put("someText", text);
CustomFragment fragment = new CustomFragment();
fragment.setArguments(arguments);
return fragment;
}
とonCreate()
方法でと引数を取得し、あなたがフラグメントで好きな初期化するために、それを処理:
@ salih-erikci試してみましたか? –
はい、私はあなたの方法を使用し、それは働いた。あなたが言ったように、これはフラグメントを初期化するのに理想的で推奨される方法でなければなりません。ありがとう –