Melanjutkan edisi sebelumnya itu Android Volley Part I, kali ini akan membahas lebih mendalam tentang Android Volley Library.
Perlu admin jelaskan sedikit kembali, bahwa Android Volley Library merupakan Library yang mengatur permintaan data (request) dalam sebuah jaringan dan hasil dari permintaan data (response) tersebut kemudian disimpan secara sementara (chaces) tanpa harus seorang Developer membuat deretan baris kode yang sangat banyak.
Pemrosesan data menggunakan Volley Library dijalankan berdasarkan urutan – urutan sesuai antrian dan ketika semua selesai maka data – data tersebut akan simpan kedalam chace agar pemrosesan data selanjutnya akan menjadi lebih cepat. Volley ini sangat cocok di gunakan pada aplikasi yang menampilkan gambar dengan jumlah yang banyak.
Ada 4 (empat) Tools dari Volley yang paling sering digunakan yaitu sebagai berikut:
- SimpleRequestActivity yaitu membangun sebuah class yang anda ciptakan sendiri dengan menginduk ke salah satu class yang ada pada Volley diantaranya request classes, pengaturan prioritas permintaan data, dan inisialisasi hasil respon chace.
- ImageRequestActivity yaitu contoh untuk menggunakan class ImageLoader.
- JsonSearchRequestActivity yaitu apabila ingin melakukan permintaan data yang masih dalam bentuk JSONobject dan memparsingnya dengan menggunakan GSON Library.
- NetworkImageSearchActivity merupakan kombinasi dari JSONrequest dan hasilnya diparsing menggunakan GSON Library yang selanjutnya akan ditapilkan kedalam List View.
Struktur Volley Library
Volley bekerja dan diatur berdasarkan antrian atau disebut dengan RequestQueue. RequestQueue menjadi pilihan yang tepat kerena dengan melakukan sekali permintaan data anda dapat menambahkan permintaan data kembali atau melakukan pembatalan terhadap permintaan data tersebut.
RequestQueue queue =Volley.newRequestQueue(this);
Parameter yang digunakan adalah
RequestMethod
(get, post, delete, ect)JSONObject
– Sebuah objek yang akan diposting sesuai dengan request anda.ResponseListener
– Dijalankan ketika request selesai diproses.ErrorListener
– Suatu perintah yang akan dijalankan ketika bermasalah dalam request.
Contoh Fungsi Untuk Menghapus Data
private void conHapus(final String ID){ // Request Data menggunakan Method POST (Sesuai dengan kebutuhan); StringRequest reqHapus = new StringRequest(Request.Method.POST,"localhost/apps/hapus.php", new Response.Listener<String>() { @Override public void onResponse(String response) { // Ketika ada respon dari server hidePDialog(); if(response.equals("")){ system.out.println("data kosong"); }else{ try { ModelDB modelDb = null; // Konversi String kedalam JSONobject JSONObject jsonObject = new JSONObject(response); // Konversi JSONobject kedalam JSONArray JSONArray jsonArray = jsonObject.getJSONArray("value"); if(jsonArray.length()&amp;lt;=0){ system.out.println("data kosong"); }else{ for (int i = 0; i &amp;lt; jsonArray.length(); i++) { JSONObject obj = jsonArray.getJSONObject(i); modelDb= new ModelDB(); // Setting nilai kedalam Model modelDb.SetStatus(obj.getString("statusData")); modelDb.SetId(obj.getString("lastId")); } if(modelDb.getA().equals("sukses")){ system.out.println("data berhasil dihapus"); }else{ system.out.println("data Gagal dihapus"); } } } catch (Throwable t) { return ; } } } }, new Response.ErrorListener() { // Ketika terjadi kesalahan dari server @Override public void onErrorResponse(VolleyError error) { hidePDialog(); system.out.println("Error Respon."+error,ListDataActivity.this); } }) { @Override protected Map<String,String> getParams(){ Map<String,String> params = new HashMap<String, String>(); // Setting nilai yang akan dikirim ke Web Service dengan Method POST params.put("id_objek",ID); //id_objek: nama variabel, ID: value params.put("req","deleteData"); //req: nama variabel, deleteData: value return params; } @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String,String> params = new HashMap<String, String>(); params.put("Content-Type","application/x-www-form-urlencoded"); return params; } }; //Set time out int socketTimeout = 30000; RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); reqHapus.setRetryPolicy(policy); AppController.getInstance().addToRequestQueue(reqHapus); }
Nah, sampai disini dulu ya. Mudah – mudahan tidak bingung :). Artikel selanjutnya adalah Implementasi Android Volley Library Kedalam Aplikasi Android.
Salam Hangat