22
33import android .os .Bundle ;
44import android .support .v7 .app .AppCompatActivity ;
5+ import android .util .Log ;
6+ import android .widget .ListView ;
7+ import android .widget .Toast ;
8+
9+ import com .android .volley .RequestQueue ;
10+ import com .android .volley .Response ;
11+ import com .android .volley .VolleyError ;
12+ import com .android .volley .toolbox .JsonArrayRequest ;
13+ import com .android .volley .toolbox .Volley ;
14+
15+ import org .json .JSONArray ;
516
617import java .util .ArrayList ;
718
@@ -13,15 +24,19 @@ public final class MainActivity extends AppCompatActivity {
1324
1425 private static String TAG = MainActivity .class .getSimpleName ();
1526
27+ private MainAdapter mAdapter ;
28+ private RequestQueue mRequestQueue ;
29+
1630 @ Override
1731 protected void onCreate (Bundle savedInstanceState ) {
1832 super .onCreate (savedInstanceState );
1933
20- // TODO: init adapter with Constructor(Context, ResId, ResId)
34+ mAdapter = new MainAdapter ( this , R . layout . row_main , R . id . text_title );
2135
2236 setContentView (R .layout .activity_main );
2337
24- // TODO: retrieve ListView & set adapter
38+ ListView listView = findViewById (android .R .id .list );
39+ listView .setAdapter (mAdapter );
2540
2641 if (savedInstanceState == null ) {
2742 reset ();
@@ -32,12 +47,38 @@ protected void onCreate(Bundle savedInstanceState) {
3247 }
3348
3449 private void reset () {
35- // TODO: init RequestQueue if null, then add request to "http://cobaltians.org/events.json",
36- // save events with `EventsList.setAll(Context, JSONArray)` & call `reload()` method
50+ if (mRequestQueue == null ) {
51+ mRequestQueue = Volley .newRequestQueue (getApplicationContext ());
52+ }
53+
54+ mRequestQueue .add (new JsonArrayRequest ("http://cobaltians.org/events.json" ,
55+ new Response .Listener <JSONArray >() {
56+ @ Override
57+ public void onResponse (JSONArray response ) {
58+ EventsList .setAll (MainActivity .this , response );
59+ reload ();
60+
61+ Toast .makeText (MainActivity .this , R .string .reset_success ,
62+ Toast .LENGTH_LONG ).show ();
63+ }
64+ },
65+ new Response .ErrorListener () {
66+ @ Override
67+ public void onErrorResponse (VolleyError error ) {
68+ Toast .makeText (MainActivity .this , R .string .reset_error ,
69+ Toast .LENGTH_LONG ).show ();
70+
71+ Log .e (TAG , "reset: " + error .getMessage ());
72+ error .printStackTrace ();
73+ }
74+ }));
3775 }
3876
3977 private void reload () {
4078 ArrayList <Event > events = EventsList .getAll ();
41- // TODO: reload adapter data
79+ if (! mAdapter .isEmpty ()) {
80+ mAdapter .clear ();
81+ }
82+ mAdapter .addAll (events );
4283 }
4384}
0 commit comments