尝试获取null数组的长度

时间:2016-09-24 22:52:27

标签: android

我总是犯这个错误:

FATAL EXCEPTION: OkHttp Dispatcher
 Process: com.langa.a1956, PID: 24253
java.lang.NullPointerException: Attempt to get length of null array
 com.langa.a1956.Archivum.UI.SzabadEuMusorokLeirasActivity$1$1.startActivityJSON(SzabadEuMusorokLeirasActivity.java:49)

这是我的代码:

mNextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            page = 1;
            while (page <= 27) {
                jsonData = new JSON("http://1956.osaarchivum.org/api/items?collection=13&page=" + page + "&per_page=50", SzabadEuMusorokLeirasActivity.this);
                Log.v("Current page:", page + "");
                jsonData.mJSONInterface = new JSONInterface() {
                    @Override
                    public void startActivityJSON() {
                        for (int i = 0; i < jsonData.getCollections().length; i++) {
                            Log.v("Current I:", i + "");
                            final JSONMedia jsonMedia = new JSONMedia(jsonData.getCollections()[i].getMediaURL(), SzabadEuMusorokLeirasActivity.this);
                            final int finalI = i;
                            jsonMedia.mJSONMediaInterface = new JSONInterface() {
                                @Override
                                public void startActivityJSON() {
                                    jsonData.getCollections()[finalI].setMediaURL(jsonMedia.getMediaUrl());
                                    mCollectionList.add(jsonData.getCollections()[finalI]);
                                    Log.v("NEWMEDIA", jsonMedia.getMediaUrl());
                                }
                            };
                        }
                        page++;
                    }
                };
            }
        }
    });

我想读出JSON对象的不同页面,但它不会工作......当我尝试用jsonData变量做某事时它总是崩溃。

1 个答案:

答案 0 :(得分:0)

在尝试访问jsonData对象之前,先测试它是否为null。如果不为null则继续。

if (jsonData != null) {
   // Array accessing code here
}