2014-12-22 49 views
0

使用接口時,得到一個空指針異常,我得到一個空指針異常,當我嘗試使用凌空庫。下面是我的代碼,你可以幫我請(對不起我的英文):我onResponse凌空庫

問題是他無法實例委託類。

Singleton類MenuWebService:

公共類MenuWebService {

public static final String TAG = MenuWebService.class.getSimpleName(); 
private String tag_json_arry = "tag_json_arry"; 
private static MenuWebService mInstance = null; 

private ArrayList<Menu> listMenu = new ArrayList<Menu>(); 
private RequestCallback delegate; 
private Menu menuObject; 

public static MenuWebService getInstance() { 
    if (mInstance == null) { 
     mInstance = new MenuWebService(); 
    } 
    return mInstance; 
} 

public void getMenu() { 

    JsonArrayRequest req = new JsonArrayRequest(Const.URL_JSON_MENU, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        JSONObject menu; 
        Log.d(TAG,"Response :"+ response.toString()); 
        for (int i = 0; i < response.length(); i++) { 

         try { 
          menu = (JSONObject) response.get(i); 
          menuObject = new Menu(menu); 
          listMenu.add(menuObject); 

         } catch (JSONException e) { 

          e.printStackTrace(); 
         } 
        } 
        delegate.onGetMenuSuccess(listMenu); 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d(TAG, "Error: " + error.getMessage()); 
        if (error != null) { 

         delegate.onError(error.getMessage()); 

        } 
       } 
      }); 

    AppController.getInstance().addToRequestQueue(req, tag_json_arry); 

} 

}

RequestCallback.java:

公共接口RequestCallback {

public void onGetMenuSuccess(ArrayList<Menu> listMenu); 

public void onError(String message); 

}

這裏是日誌錯誤:

12-22 16:22:29.626: E/AndroidRuntime(15910): FATAL EXCEPTION: main 
12-22 16:22:29.626: E/AndroidRuntime(15910): Process: com.mobvalue.livefoot.fr, PID: 15910 
12-22 16:22:29.626: E/AndroidRuntime(15910): java.lang.NullPointerException 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.mobvalue.livefoot.fr.services.MenuWebService$1.onResponse(MenuWebService.java:61) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.mobvalue.livefoot.fr.services.MenuWebService$1.onResponse(MenuWebService.java:1) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at android.os.Handler.handleCallback(Handler.java:733) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at android.os.Handler.dispatchMessage(Handler.java:95) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at android.os.Looper.loop(Looper.java:157) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at android.app.ActivityThread.main(ActivityThread.java:5356) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at java.lang.reflect.Method.invokeNative(Native Method) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at java.lang.reflect.Method.invoke(Method.java:515) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
12-22 16:22:29.626: E/AndroidRuntime(15910): at dalvik.system.NativeStart.main(Native Method) 

回答

0

您還沒有初始化請求回叫委託和正在使用的話,如:

delegate.onGetMenuSuccess(listMenu); 

如果初始化它,將解決您的問題。

+0

如何初始化它,請? – user3581886

+0

你怎麼定義RequestCallback?抑或是一些自定義庫來嗎? – SMA

+0

要求回撥在我的項目定義。我在我的活動中執行它 – user3581886