存储Volley请求数据

时间:2015-09-16 21:27:00

标签: android get request android-volley

我自己学习编程,而且我遇到了一个我认为很容易解决的问题。

我正在使用Google排球提出请求,并希望了解我如何存储请求中的信息,以便我在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。

我一个人开始研究了很多,但对这个简单的问题一无所获。

无论如何,谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用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", "");

答案 1 :(得分:1)

<{1>}在onResponse方法中,response的数据类型为JSONArrayJSONObject,因此要在String中获取它只需调用{{1} } 现在你可以在你的response.toString()中返回它:

parseJSON()

或 你可以在你的活动中创建一个公共静态函数来设置一个String并在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 ; }

中调用它