2014-12-22 48 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