new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray json) { // Response is automatically parsed into a JSONArray // json.getJSONObject(0).getLong("id"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } });
new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray json) { // Response is automatically parsed into a JSONArray // json.getJSONObject(0).getLong("id"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } });
new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray json) { // Response is automatically parsed into a JSONArray // json.getJSONObject(0).getLong("id"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } });
new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray json) { // Response is automatically parsed into a JSONArray // json.getJSONObject(0).getLong("id"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } });
a data source for the adapter public class UserListActivity extends AppCompatActivity { ArrayList<Contact> contacts; @Override protected void onCreate(Bundle savedInstanceState) { // ... // Lookup the recyclerview in activity layout RecyclerView rvContacts = (RecyclerView) findViewById(R.id.rvContacts); // Initialize contacts contacts = Contact.createContactsList(20); // Create adapter passing in the sample user data ContactsAdapter adapter = new ContactsAdapter(contacts); // Attach the adapter to the recyclerview to populate items rvContacts.setAdapter(adapter); // Set layout manager to position the items rvContacts.setLayoutManager(new LinearLayoutManager(this)); // That's all! } }
a data source for the adapter 2. Fetch data (from the Internet or local storage) 3. Translate fetched data into multiple Java objects that we can understand and use
a data source for the adapter 2. Fetch data (from the Internet or local storage) 3. Translate fetched data into multiple Java objects that we can understand and use 4. Add new objects to data source
a data source for the adapter 2. Fetch data (from the Internet or local storage) 3. Translate fetched data into multiple Java objects that we can understand and use 4. Add new objects to data source 5. Notify adapter that the data has been updated
data client.getHomeTimeline(1, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { for (int i = 0; i < response.length(); i++) { try { // translate data into java objects JSONObject jsonObjectTweet = response.getJSONObject(i); Tweet tweet = Tweet.fromJson(jsonObjectTweet); // add new objects to data source tweets.add(tweet); // notify adapter data has been updated adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } }); }
data client.getHomeTimeline(1, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { for (int i = 0; i < response.length(); i++) { try { // translate data into java objects JSONObject jsonObjectTweet = response.getJSONObject(i); Tweet tweet = Tweet.fromJson(jsonObjectTweet); // add new objects to data source tweets.add(tweet); // notify adapter data has been updated adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } }); }
data client.getHomeTimeline(1, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { for (int i = 0; i < response.length(); i++) { try { // translate data into java objects JSONObject jsonObjectTweet = response.getJSONObject(i); Tweet tweet = Tweet.fromJson(jsonObjectTweet); // add new objects to data source tweets.add(tweet); // notify adapter data has been updated adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } }); }
data client.getHomeTimeline(1, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { for (int i = 0; i < response.length(); i++) { try { // translate data into java objects JSONObject jsonObjectTweet = response.getJSONObject(i); Tweet tweet = Tweet.fromJson(jsonObjectTweet); // add new objects to data source tweets.add(tweet); // notify adapter data has been updated // this calls onBindViewHolder for the necessary items adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } }); }
data client.getHomeTimeline(1, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { for (int i = 0; i < response.length(); i++) { try { // translate data into java objects JSONObject jsonObjectTweet = response.getJSONObject(i); Tweet tweet = Tweet.fromJson(jsonObjectTweet); // add new objects to data source tweets.add(tweet); // notify adapter data has been updated adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { // the network request failed for some reason. debug here } }); }