私は6つのフラグメントを持っていますが、すべて同じレイアウトと機能性を持ち、各フラグメントのデータ[A、B、C、D、...]は異なります。最初の2つのフラグメントが作成されると、私はB、B、C、D ...などを表示します。 Cからスワイプすると、正しいデータがC、B、Aで表示されます。 私は何が間違っているのか分かりません。ここでは、コードのビットは次のとおりです。同じデータを示す第1および第2のフラグメント
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
private final Bundle fragmentBundle;
public ScreenSlidePagerAdapter(FragmentManager fm, Bundle data) {
super(fm);
fragmentBundle = data;
}
@Override
public Fragment getItem(int position) {
// creating fragment and passing int position for array and array
return SoundFrag.newInstance(position, fragmentBundle);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
およびフラグメントのクラス:
public class SoundFrag extends Fragment{
// fragment Id Postion
private int fragPosition;
private static final String KEY_POSITION="fragIntIdP";
static SoundFrag newInstance(int position, Bundle arrayIntS) {
SoundFrag frag=new SoundFrag();
arrayIntS.putInt(KEY_POSITION, position);
frag.setArguments(arrayIntS);
return(frag);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// retrive data from bundle passed by activity
Bundle argsIn = getArguments();
SoundArrayParcel arrayToReceive = argsIn.getParcelable("dataResId");
final int[][] arrayResId = arrayToReceive.getInt();
fragPosition = argsIn.getInt("fragIntIdP");
// inflate the fragment
final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.sounds_frag, container, false);
..... 私は問題がここにあると信じます。最初の2つのフラグメントでは、fragPositionの値は0でなく1で、常に1になります。なぜですか?
ありがとうございました!何が価値がある...
については