当我尝试将一个ArrayList从一个活动传递给一个片段时,我遇到了一个问题,我找不到错误;我找到了很多答案但却无法找到有效的方法。 这是我的代码,我是通过连接请求到php执行此响应,它工作正常,并将正确的值放在我的arraylists中:
for (int i = 0; i < res.length(); i++) {
try {
String data = res.getString(i);
String[] items = data.split(";");
types.add(items[0]);
distances.add(items[1]);
startDates.add(items[2]);
elapsedTimes.add(items[3]);
ratings.add(items[4]);
} catch (JSONException e) {
e.printStackTrace();
}
}
bundle.putStringArrayList("types",types);
bundle.putStringArrayList("distances",distances);
bundle.putStringArrayList("startDates",startDates);
bundle.putStringArrayList("elapsedTimes",startDates);
bundle.putStringArrayList("ratings",ratings);
}
然后,在我的主要活动中,我将此数组传递给我的片段:
@Override
public Fragment getItem(int position) {
switch (position){
/*other cases*/
case 1:
MyFragment f = new MyFragment();
f.setArguments(bundle);
return f;
}
}
最后,在我的片段中,我要做捆绑:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle params = this.getArguments();
if(params!=null) {
ratings = getArguments().getStringArrayList("ratings");
distances = params.getStringArrayList("distances");
elapsedTimes = params.getStringArrayList("elapsedTimes");
types = params.getStringArrayList("types");
startDates = params.getStringArrayList("startDates");
}
}
但是,如果我尝试在数组的片段中打印任何值,它就会被NullPointerException