2015-09-16 4 views
1

Я учусь программировать самостоятельно, и у меня есть проблема, которую, я считаю, легко решить.Магазин Волейбол Данные запроса

Я делаю запросы с помощью 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); 
} 

Я не знаю, как передать данные этого отдельного метода на главную.

Я начинаю один и много исследовал, но ничего не нашел с этой простой проблемой.

В любом случае, спасибо!

ответ

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 является JSONArray или JSONObject, так что у нужно сделать, чтобы получить его в String, просто позвоните 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()

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