質問: Android開発Fragment返り値の質問です。 @NonNull @Override public Fragment getItem(int position) { switch (position) { case 0:
回答: getItemの引数「position」によって、 SettingFragmentの挙動を変えたい。ということでしょうか? 2パターン考えられます。 ■パターン1(継承先で挙動制御) SettingFragmentを継承した SettingFragment2, SettingFragment3を作り、挙動の差異をそこに書く あとは、以下のように、生成するFragmentを変える。 switch (position) { case 0: return new SettingFragment(); case 1: return new SettingFragment2(); case 2: return new SettingFragment3(); } ■パターン2(SettingFragmentで制御) Bundleでデータを渡して、 SettingFragment内で、データを受け取り処理する public Fragment getItem(int position) { Bundle bundle = new Bundle(); bundle.putInt("position", position); Fragment fragment = new SettingFragment(); fragment.setArguments(bundle); return fragment; } SettingFragment内で getArguments()すると渡したBundleが取れるからそこからデータ取得 int data = getArguments().getInt("position");