2016-08-02 13 views
0

私はボレーのライブラリの応答をしようとしています。私は期待通りに応答していますが、jsonobjectを自分のアクティビティに戻すことができません。私はUtil.javaというクラスを持っている、すべてのAndroidでのアプリケーション上で[OK]を私は今、ポイントに来ています、volley jsonobjectをクラスからアンドロイドのアクティビティに戻す方法

を応答を与えるだろう、このクラスでは、私は

public JSONObject fetchResponse() { 

    try { 

     JSONObject json = new JSONObject(); 

     json = createStuff(); 

     URL = "my url here" + json.toString(); 

     final JsonObjectRequest volleyRes = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       try { 
        //fetchRes = result(response); 
        //fetchRes = new JSONObject(); 
        //fetchRes = new JSONObject(response.toString()); 
        Log.w("UTIL res 61 ", fetchRes.toString()); 
        // result(fetchRes); 

       } catch (Exception e) { 
        Log.w("UTILrespon error ", "" + e); 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError e) { 
       Log.w("UTIL res error ", "" + e); 
      } 
     }); 

     volleyRes.setRetryPolicy(new DefaultRetryPolicy(10000, 2, 2)); 
     AppController.getInstance().addToRequestQueue(volleyRes); 
     Log.w("UTIL res 83 ", fetchRes.toString()); 

    } catch (Exception e) { 

     Log.e("UTIL Error ", "" + e); 
    } 
    return fetchRes; 

} 

以下のようにjsonobject返してきた方法ここでfetchResは、このメソッドの外で宣言したjsonobjectです

私の問題であり、私は私のアプリを実行していたとき、私は、このメソッドからの応答を取得することができます

 @Override 
    public void onResponse(JSONObject response) { 
     try { 

      // fetchRes = result(response); 
      // fetchRes = new JSONObject(); 
      fetchRes = new JSONObject(response.toString()); 
      Log.w("UTIL res 61 ", response.toString()); 
      // result(fetchRes); 


     } catch (Exception e) { 

      Log.w("UTILrespon error ", "" + e); 
     } 

    } 

私は別のjsonobjectに格納することができないとに戻ることができない応答を得ればアンドロイドの私MainActivity.javaは...そう誰も私は、JSONオブジェクトのクラスを作成し、Gsonライブラリを使用して、この問題のうち、事前

答えて

0

おかげで来て助けてください。 json文字列をオブジェクトに直接変換します。

例: -

Gson gson = new Gson(); 
MyBean myBean; 
myBean = gson.fromJson(response.toString,MyBeans.class); 
+0

私は別の豆のクラスを使用しているので、このアイデアは、アプリケーションでは動作しませんので、もし私が十分な、私は十分なnullのないjsonobjectを返すことができます –

0
Define an interface 
interface FetResponseListener { 
    void onFetchResponse(JSONObject response); 
} 

はお電話どこFetResponseListenerを実装fetchResponse

public void fetchResponse(FetResponseListener listener) { 
    .... 

    @Override 
    public void onResponse(JSONObject response) { 
     try { 
      listener.onFetchResponse(response); 

     } catch (Exception e) { 
      Log.w("UTILrespon error ", "" + e); 
     } 
    } 
} 

にパラメータとして、このインターフェイスを渡しfetchResponse

fetchResponse(new FetResponseListener() { 
    @Override 
    public void onFetchResponse(JSONObject response) { 
     // use json response 
    } 
}); 

またはちょうどEventBus

関連する問題