Hello, I'm pretty new with the Volley Library.
I'm making a nested request to two (2) different API using Volley.
the response is of a String type which is converted to JSONObject.
both requests are successful as I store them in local variable within a try and catch block, log them and get the expected response.
However outside the try and catch block the local variable become empty as defined initially.
Is there a way to permanently store the response data in the local variable?
Thanks in advanced.
here is my code:
public class MainActivity extends AppCompatActivity {
  String topStoriesIDUrl = "https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty";
  static JSONArray myJsonArray = new JSONArray();
  ArrayList<String> arrayList = new ArrayList<>();
  ListView mListView;
  ArrayAdapter<String> adapter;
  Toolbar mainToolbar;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mListView = (ListView) findViewById(R.id.mListView);
    mainToolbar = (Toolbar) findViewById(R.id.toolbar);
    mainToolbar.inflateMenu(R.menu.menu_main);
    getDataFromServer();
// Â Â Â Â adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, arrayList);
// Â Â Â Â mListView.setAdapter(adapter);
  }
  public void getDataFromServer() {
    StringRequest stringRequest = new StringRequest(Request.Method.GET, topStoriesIDUrl,
        new Response.Listener<String>() {
          @Override
          public void onResponse(String response) {
            try {
              String topStoriesJson;
              String storyID;
              JSONArray jsonArray = new JSONArray(response);
              for(int i = 0; i < 20; i++) {
                storyID = jsonArray.getString(i);
                Log.i("ArticleID", storyID);
                topStoriesJson = "https://hacker-news.firebaseio.com/v0/item/" + storyID + ".json?print=pretty";
                final int indexInt = i;
                StringRequest myStrReq = new StringRequest(Request.Method.GET, topStoriesJson,
                    new Response.Listener<String>() {
                      @Override
                      public void onResponse(String response) {
                        try {
                          JSONObject myJsonObj = new JSONObject(response);
                          myJsonArray.put(myJsonObj);
                          Log.i("Title", myJsonArray.getJSONObject(indexInt).getString("title"));
                        }
                        catch (JSONException e) {
                          e.printStackTrace();
                        }
                      }
                    },
                    new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
                        Log.i("myError", error.getMessage());
                        error.printStackTrace();
                      }
                    }
                );
                MySingleton.getInstance(MainActivity.this).addToRequestQue(myStrReq);
              }
            }
            catch (JSONException e) {
              e.printStackTrace();
            }
          }
        },
        new Response.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError error) {
            Log.i("myError", error.getMessage());
            error.printStackTrace();
          }
        }
    );
    MySingleton.getInstance(MainActivity.this).addToRequestQue(stringRequest);
  }
}