package com.tecent.recyclerviewjsonexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private ExampleAdapter mExampleAdapter; private ArrayList mExampleList; private RequestQueue mRequestQueue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = findViewById(R.id.recycler_view); mRecyclerView.setHasFixedSize(true); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mExampleList = new ArrayList<>(); mRequestQueue = Volley.newRequestQueue(this); parseJSON(); } private void parseJSON() { String url = "https://pixabay.com/api/?key=12210473-92fa288f3823f1d930c2d918e&q=kitten&image_type=photo&pretty=true"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("hits"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(i); String creatorName = hit.getString("user"); String imageUrl = hit.getString("webformatURL"); int likeCount = hit.getInt("likes"); mExampleList.add(new ExampleItem(imageUrl, creatorName, likeCount)); } mExampleAdapter = new ExampleAdapter(MainActivity.this, mExampleList); mRecyclerView.setAdapter(mExampleAdapter); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); mRequestQueue.add(request); } }