2014-09-13 3 views
0

Я пытаюсь получить доступ к своему ресурсу за пределами действия. Но он не обращается к нему. Это дает NullPointerException мой код нижеИспользование getString за пределами действия

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 где я получаю сообщение об ошибке. Если вы можете помочь с исправлением, я буду рад. Thanks

+0

Где именно происходит NPE? Добавьте в сообщение сообщение logcat. –

+0

Uri uri = Uri.parse ("content: //" + context.getString (R.string.AUTORITY_ORDER) + "/ orders"); – 2014-09-13 22:20:20

+0

Итак, 'uri1' имеет значение null, вы передаете его как параметр, как это связано с ресурсами? –

ответ

0

Сделать контекст окончательный. Нет объекта ссылки обратно на объект OrderDataRetrieval. Его получение удалено до ответа ответа

0

Вы должны проверить, не установлен ли при установке OrderDataRetrieval на Fragment параметр Context не равен нулю. Вы всегда можете проверить, является ли оно нулевым. Если это так, используйте:

new OrderDataRetrieval(getActivity).

Нравится программа? Пожертвуйте объект ActivityContext.

Смежные вопросы