数组的声明。

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);
    }


whyn尝试访问fragments []我总是得到一个NullPointerException,而且我搜索并没有运气,我找不到错误的地方,希望有些新鲜的眼睛可以!

最佳答案

将其更改为:

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


当您运行该命令时,它还会给出错误消息吗?

我在想getFragmentManager()可能在您的问题中返回null。由于我看不到getFragmentManager的代码,ft的声明和赋值以及findFragmentByTag,所以我不确定。

10-08 01:39