在Activity外部使用getString

时间:2014-09-13 22:13:43

标签: android android-resources

我正在尝试在活动之外访问我的资源。但是,它没有访问它。它给出 NullPointerException 我的代码在

之下
public class OrderDataRetrieval {

    Context context;

    public OrderDataRetrieval(Context myContext){
        context = myContext;
    }

    public void getData(String getToken, final Uri uri1, final Uri uri2, final Uri uri3){

        String order_URL = "http://xxxxxxxx?token=" + getToken + "&contain=Issue,OrderItem";

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
                order_URL, null,
                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {

                        Log.d("REPLY", response.toString());
                        handleResponse(response);
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        // TODO Auto-generated method stub

                    }
                });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(jsonObjReq);
    }

    public void handleResponse(JSONObject response){



        try {
            JSONObject respOrd = response.getJSONObject("response");
            JSONObject dataOrd = respOrd.getJSONObject("data");
            JSONArray ordersArr = dataOrd.getJSONArray("orders");
            //JSONArray issuesArray = ordersArr.getJSONArray(0);
            //JSONArray itemArray = ordersArr.getJSONArray(1);
            //String getIt = context.getString(R.string.AUTORITY_ORDER);
            Log.d("TEST", uri1.toString());
            Uri uri = Uri.parse("content://" + context.getString(R.string.AUTORITY_ORDER) + "/orders");
            //Log.d("TAGURL", uri2.toString());
            Uri itemUri = Uri.parse("content://" + context.getString(R.string.AUTORITY_ORDER) + "/oitems");
            Uri issuesUri = Uri.parse("content://" + context.getString(R.string.AUTORITY_ORDER) + "/oissues");

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

我正在使用的区域 Uri 是我收到错误的地方。如果你可以帮忙解决问题,我会很高兴的。感谢

2 个答案:

答案 0 :(得分:0)

让背景最终化。没有对象链接返回OrderDataRetrieval对象。它在响应之前被删除

答案 1 :(得分:0)

您必须检查OrderDataRetrieval上的Fragment是否确定Contextnew OrderDataRetrieval(getActivity)参数不为空。您始终可以检查它是否为空。 如果是,请使用:

Activity

像这样,您传递的是片段的Context {{1}}对象。