Android NullPointException捆绑getArguments

时间:2016-06-13 17:29:37

标签: android android-fragments nullpointerexception bundle

当我尝试将一个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

所占据。

0 个答案:

没有答案