0

配列の宣言。

public ExerciseFragment[] fragments;

初期化。

fragments = new ExerciseFragment[numberOfWorkouts];

最後に、各フラグメントをそれぞれの に等しく設定しますExerciseFragment

for (int i = 0; i < numberOfWorkouts; i++) {
        ft.add(LinearLayoutID, new ExerciseFragment(), "KEY"+i);
        fragments[i] = (ExerciseFragment) getFragmentManager().findFragmentByTag("KEY"+i);
    }

なぜ Fragments[] にアクセスしようとしているのですか?常に NullPointerException が発生し、何度も検索してもうまくいきませんでした。間違った場所を見つけることができません。

4

1 に答える 1

1

それを次のように変更するのはどうですか:

for (int i = 0; i < numberOfWorkouts; i++) {
    fragments[i] = new ExerciseFragment();
    ft.add(LinearLayoutID, fragments[i], "KEY"+i);
}

それを実行すると、まだエラーメッセージが表示されますか?

あなたの質問で getFragmentManager() が null を返している可能性があると思います。getFragmentManager、ftの宣言と代入、findFragmentByTagのコードが見えないのでよくわかりません。

于 2012-07-16T00:00:07.020 に答える