仅当json对象不为null时才进行asynctask调用时出现空点异常

时间:2015-04-23 10:19:57

标签: android android-asynctask

我有调用自己的asynctask类的活动来获取通过API调用加载的数据。在活动onCreat()中,我正在调用aynctask,如下所示,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pickup_activity);


    if (!dataDelivery.isEmpty()) {         //line 77

        new PickupAsyncTask(getBaseContext(), new OnTaskCompleted() {

            @Override
            public void onTaskCompleted(JSONArray responseJson) {

                Constants.dataDelivery = responseJson.toString();

                loaddata();
                System.out.println("dataDelivery");
            }
        }).execute();
    }

    loaddata();

}

public void loaddata() {

    dataDelivery = Constants.getDataDelivery();

    try {

        JSONArray dataArray = new JSONArray(dataDelivery);
        for (int i = 0; i < dataArray.length(); ++i) {

            JSONObject object = dataArray.getJSONObject(i);

            if (!pickupOutlet.contains(object.getString("OutletName")))
                pickupOutlet.add(object.getString("OutletName"));
        }
        findViewById(R.id.loadingPanel).setVisibility(View.GONE);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

然后jsonresponse将被加载到Constants对象,以便我可以在下面显示的加载方法中使用它,

我只想在dataDelivery为空时才进行asynctask调用。如果不是,它应该调用asynctask。所以我尝试如下所示,它最终给出了这个例外。

我的问题是如何正确使用if条件。

enter image description here

0 个答案:

没有答案