数组的声明。
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试图访问片段[]我总是得到一个NullPointerException,我搜索并搜索没有运气,我找不到我错的地方,希望有些新鲜的眼睛可以!
答案 0 :(得分:1)
如何将其更改为:
for (int i = 0; i < numberOfWorkouts; i++) {
fragments[i] = new ExerciseFragment();
ft.add(LinearLayoutID, fragments[i], "KEY"+i);
}
运行时是否还会显示错误消息?
我认为getFragmentManager()可能在你的问题中返回null。由于我看不到getFragmentManager的代码,ft和findFragmentByTag的声明和赋值,所以我无法确定。