2015-09-16 103 views
1

我正在學習編程,我面臨的問題是我相信很容易解決。Store Volley請求數據

我使用Google Volley提出請求,並想知道如何存儲請求中提供的信息,以便在我的onCreate中與他們一起工作。

 
public void parseJSON(){ 

StringRequest getRequest = new StringRequest(Request.Method.GET,activity.getString(R.string.URL), 
      new Response.Listener() { 

       @Override 
       public void onResponse(String response) { 
        I need to store the data for use in the method onCreate. 

      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

        Log.e("Error.Response", error.toString()); 


       } 
      }); 
    request.add(getRequest); 
} 

我不知道如何將這個單獨的方法的數據傳遞給main。

我從一開始就研究了很多,但沒有發現這個簡單的問題。

謝謝你!

回答

1

您可以使用SharedPreferences來存儲數據。創建一個方法來做到這一點。

private void sharedResponse(String response) { 
    SharedPreferences m = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = m.edit(); 
    editor.putString("Response", response); 
    editor.commit(); 
} 

並從您的onResponse中調用此方法。

@Override 
      public void onResponse(String response) { 
       //I need to store the data for use in the method onCreate. 
       sharedResponse(response); 
     } 

您可以從其他類由

SharedPreferences m = PreferenceManager.getDefaultSharedPreferences(this); 
mResponse = m.getString("Response", ""); 
0

onResponse方法response數據類型是JSONArrayJSONObject訪問這些數據,所以什麼u必須做的就是它的字符串是簡單的調用response.toString() 現在ü可以像這樣在你的parseJSON()返回它:

public String parseJSON(){ 
final String responseStr = new String(); 

     JsonArrayRequest request = new JsonArrayRequest(url, new Response.Listener<JSONArray>() { 
      @Override 
      public void onResponse(JSONArray response) { 
responseStr = response.toString(); 
       for (int i = 0; i < response.length(); i++) { 
        try { 
//parse you Json here 

} catch (JSONException e) { 
         Log.d(e.toString()); 
        } 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.d(error.toString()); 
      } 
     }); 

     Volley.newRequestQueue(context).add(request); 

     return responseStr ; 

    } 

或 您可以在您的活動中設置一個字符串並將其稱爲parseJSON()