hendroprwk08

Untitled

Aug 24th, 2020 (edited)
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.96 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3.     ArrayList<Dessert> desserts;
  4.     RecyclerView rv;
  5.     ProgressBar pb;
  6.     SwipeRefreshLayout srl;
  7.  
  8.     @Override
  9.     protected void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);
  11.         setContentView(R.layout.activity_main);
  12.  
  13.         pb = (ProgressBar) findViewById(R.id.progress_horizontal);
  14.  
  15.         srl = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
  16.  
  17.         srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  18.             @Override
  19.             public void onRefresh() {
  20.                 load();
  21.  
  22.                 new Handler().postDelayed(new Runnable() {
  23.                     @Override public void run() {
  24.                         srl.setRefreshing(false);
  25.                     }
  26.                 }, 1000); // Delay in millis
  27.             }
  28.         });
  29.  
  30.         srl.setColorSchemeResources(android.R.color.holo_blue_bright,
  31.                 android.R.color.holo_green_light,
  32.                 android.R.color.holo_orange_light,
  33.                 android.R.color.holo_red_light);
  34.  
  35.         load();
  36.     }
  37.  
  38.     private void showRecyclerGrid(){
  39.         RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv);
  40.  
  41.         if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
  42.             recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
  43.         }else{
  44.             recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
  45.         }
  46.  
  47.         DessertAdapter mAdapter = new DessertAdapter(this, desserts);
  48.         recyclerView.setAdapter(mAdapter);
  49.         recyclerView.setItemAnimator(new DefaultItemAnimator());
  50.     }
  51.  
  52.     public void load(){
  53.         pb.setVisibility(ProgressBar.VISIBLE);
  54.  
  55.         RequestQueue queue = Volley.newRequestQueue(this);
  56.         String url = "https://www.themealdb.com/api/json/v1/1/filter.php?c=Dessert";
  57.  
  58.         //Akses HTTP
  59.         JsonObjectRequest jsObjRequest = new JsonObjectRequest(
  60.                 Request.Method.GET,
  61.                 url,
  62.                 null,
  63.                 new Response.Listener<JSONObject>() {
  64.  
  65.                     @Override
  66.                     public void onResponse(JSONObject response) {
  67.                         String id, meal, photo;
  68.                         desserts = new ArrayList<>();
  69.  
  70.                         try {
  71.                             //ambil objek meals
  72.                             JSONArray jsonArray = response.getJSONArray("meals");
  73.                             desserts.clear();
  74.  
  75.                             //masukkan kedalam Arraylist
  76.                             if (jsonArray.length() != 0) {
  77.                                 for (int i = 0; i < jsonArray.length(); i++) {
  78.                                     JSONObject data = jsonArray.getJSONObject(i);
  79.  
  80.                                     id = data.getString("idMeal").toString().trim();
  81.                                     meal = data.getString("strMeal").toString().trim();
  82.                                     photo = data.getString("strMealThumb").toString().trim();
  83.                                    
  84.                                     //masukkan kedalam Arraylist
  85.                                     desserts.add(new Dessert(id, meal, photo ));
  86.                                 }
  87.  
  88.                                 showRecyclerGrid();
  89.                             }
  90.                         } catch (JSONException e) {
  91.                             e.printStackTrace();
  92.                         }
  93.  
  94.                         pb.setVisibility(ProgressBar.GONE);
  95.                     }
  96.                 }, new Response.ErrorListener() {
  97.  
  98.             @Override
  99.             public void onErrorResponse(VolleyError error) {
  100.                 pb.setVisibility(ProgressBar.GONE);
  101.                 Toast.makeText(MainActivity.this, "Connection problem!", Toast.LENGTH_SHORT).show();
  102.             }
  103.         });
  104.  
  105.         queue.add(jsObjRequest);
  106.     }
  107. }
  108.  
Add Comment
Please, Sign In to add comment