tommy_spt

code json

Oct 2nd, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.40 KB | None | 0 0
  1. package smpnegeri8.toms.siakadsmpn8;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.os.Handler;
  5. import android.support.v4.view.MenuItemCompat;
  6. import android.support.v4.widget.SwipeRefreshLayout;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.support.v7.widget.SearchView;
  10. import android.util.Log;
  11. import android.view.Menu;
  12. import android.view.MenuItem;
  13. import android.widget.AbsListView;
  14. import android.widget.ListView;
  15. import android.widget.Toast;
  16.  
  17. import com.android.volley.RequestQueue;
  18. import com.android.volley.Response;
  19. import com.android.volley.VolleyError;
  20. import com.android.volley.VolleyLog;
  21. import com.android.volley.toolbox.JsonArrayRequest;
  22. import com.android.volley.toolbox.Volley;
  23.  
  24. import org.json.JSONArray;
  25. import org.json.JSONException;
  26. import org.json.JSONObject;
  27.  
  28. import java.util.ArrayList;
  29. import java.util.List;
  30.  
  31. import smpnegeri8.toms.siakadsmpn8.functional.Adapter;
  32. import smpnegeri8.toms.siakadsmpn8.functional.AppController;
  33. import smpnegeri8.toms.siakadsmpn8.functional.URL_TAMPIL_DATA;
  34. import smpnegeri8.toms.siakadsmpn8.functional.set_dataSiswa;
  35.  
  36.  
  37. public class Data_SiswaActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener, SearchView.OnQueryTextListener{
  38.  
  39.     ProgressDialog pDialog;
  40.     List<set_dataSiswa> listData = new ArrayList<set_dataSiswa>();
  41.     Adapter adapter;
  42.     SwipeRefreshLayout swipe;
  43.     ListView list_view;
  44.  
  45.     private static String url_list = URL_TAMPIL_DATA.URL + "Json_data_siswa.php?offset=";
  46.     private int offSet = 0;
  47.     int no;
  48.     Handler handler;
  49.     Runnable runnable;
  50.  
  51.     //public static final String URL_TAMPIL_DATA = "http://smpn8-pky.tk/siakad/Json_data_siswa.php";
  52.     public static final String URL_CARI_DATA = "http://10.0.2.2/android/kuncoro_search_view/cari_data.php";
  53.  
  54.     private static final String TAG = Data_SiswaActivity.class.getSimpleName();
  55.     public static final String TAG_NO = "no";
  56.     public static final String TAG_ID = "id";
  57.     public static final String TAG_NAMA = "nama_siswa";
  58.     public static final String TAG_JK = "jk";
  59.     public static final String TAG_NISN = "nisn";
  60.     public static final String TAG_TPT_LAHIR = "tpt_lahir";
  61.     public static final String TAG_TGL_LAHIR = "tgl_lahir";
  62.     public static final String TAG_AGAMA = "agama";
  63.     public static final String TAG_ALAMAT = "alamat";
  64.     public static final String TAG_KELURAHAN = "kalurahan";
  65.     public static final String TAG_KECAMATAN = "kecamatan";
  66.     public static final String TAG_NM_AYAH = "nm_ayah";
  67.     public static final String TAG_NM_IBU = "nm_ibu";
  68.  
  69.  
  70.     @Override
  71.     protected void onCreate(Bundle savedInstanceState) {
  72.         super.onCreate(savedInstanceState);
  73.         setContentView(R.layout.activity_data_siswa);
  74.  
  75.         swipe = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
  76.         list_view = (ListView) findViewById(R.id.list_view_siswa);
  77.         adapter = new Adapter(Data_SiswaActivity.this, listData);
  78.         list_view.setAdapter(adapter);
  79.         swipe.setOnRefreshListener(this);
  80.         swipe.post(new Runnable() {
  81.                        @Override
  82.                        public void run() {
  83.                            swipe.setRefreshing(true);
  84.                            listData.clear();
  85.                            adapter.notifyDataSetChanged();
  86.                            callData(0);
  87.                        }
  88.                    }
  89.         );
  90.  
  91.         list_view.setOnScrollListener(new AbsListView.OnScrollListener() {
  92.             private int currentVisibleItemCount;
  93.             private int currentScrollState;
  94.             private int currentFirstVisibleItem;
  95.             private int totalItem;
  96.             @Override
  97.             public void onScrollStateChanged(AbsListView view, int scrollState) {
  98.                 this.currentScrollState = scrollState;
  99.                 this.isScrollCompleted();
  100.             }
  101.  
  102.             @Override
  103.             public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
  104.                 this.currentFirstVisibleItem = firstVisibleItem;
  105.                 this.currentVisibleItemCount = visibleItemCount;
  106.                 this.totalItem = totalItemCount;
  107.             }
  108.             private void isScrollCompleted() {
  109.                 if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
  110.                         && this.currentScrollState == SCROLL_STATE_IDLE) {
  111.  
  112.                     swipe.setRefreshing(true);
  113.                     handler = new Handler();
  114.  
  115.                     runnable = new Runnable() {
  116.                         public void run() {
  117.                             callData(offSet);
  118.                         }
  119.                     };
  120.  
  121.                     handler.postDelayed(runnable, 3000);
  122.                 }
  123.             }
  124.         });
  125.     }
  126.     @Override
  127.     public void onRefresh() {
  128.         listData.clear();
  129.         adapter.notifyDataSetChanged();
  130.         callData(0);
  131.     }
  132.     private  void  callData(int page) {
  133.         swipe.setRefreshing(true);
  134.         JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url_list + page, new Response.Listener<JSONArray>() {
  135.             @Override
  136.             public void onResponse(JSONArray response) {
  137.                 Log.e(TAG, response.toString());
  138.                 if (response.length() > 0){
  139.                     for (int i = 0; i < response.length(); i++) {
  140.  
  141. /*                        JSONObject obj = null;
  142.                         set_dataSiswa item = new set_dataSiswa();*/
  143.                         try {
  144.                             JSONObject obj = response.getJSONObject(i);
  145.                             set_dataSiswa item = new set_dataSiswa();
  146. //                            obj = response.getJSONObject(i);
  147.                             no = obj.getInt(TAG_NO);
  148.                             item.setId(obj.getInt(TAG_ID));
  149.                             item.setNama_siswa(obj.getString(TAG_NAMA));
  150.                             item.setJk(obj.getString(TAG_JK));
  151.                             item.setNisn(obj.getString(TAG_NISN));
  152.                             item.setTpt_lahir(obj.getString(TAG_TPT_LAHIR));
  153.                             item.setTgl_lahir(obj.getString(TAG_TGL_LAHIR));
  154.                             item.setAgama(obj.getString(TAG_AGAMA));
  155.                             item.setAlamat(obj.getString(TAG_ALAMAT));
  156.                             item.setKelurahan(obj.getString(TAG_KELURAHAN));
  157.                             item.setKecamatan(obj.getString(TAG_KECAMATAN));
  158.                             item.setNm_ayah(obj.getString(TAG_NM_AYAH));
  159.                             item.setNm_ibu(obj.getString(TAG_NM_IBU));
  160.  
  161.  
  162.                             listData.add(item);
  163.  
  164.                             if (no > offSet)
  165.                                 offSet = no;
  166.  
  167.                             Log.e(TAG, "offSet " + offSet);
  168.                         } catch (JSONException e) {
  169.                             Log.e(TAG, "JSON Parsing error: " + e.getMessage());
  170.                         }
  171.                         adapter.notifyDataSetChanged();
  172.                     }
  173.                    
  174.                 }
  175.                 swipe.setRefreshing(false);
  176.             }
  177.         }, new Response.ErrorListener() {
  178.  
  179.             @Override
  180.             public void onErrorResponse(VolleyError error) {
  181.                 Log.e("VOLLEY POST","ERROR in post response"+error.getMessage());
  182.                 Toast.makeText(Data_SiswaActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
  183.                 swipe.setRefreshing(false);
  184.             }
  185.         });
  186.         // Adding request to request queue
  187.         RequestQueue requestQueue = Volley.newRequestQueue(this);
  188.         requestQueue.add(jsonArrayRequest);
  189.     }
  190.  
  191.  
  192.     @Override
  193.     public boolean onQueryTextSubmit(String query) {
  194.         return false;
  195.     }
  196.  
  197.     @Override
  198.     public boolean onQueryTextChange(String newText) {
  199.         return false;
  200.     }
  201.  
  202.     @Override
  203.     public boolean onCreateOptionsMenu(android.view.Menu menu) {
  204.         getMenuInflater().inflate(R.menu.main_menu, menu);
  205.         final MenuItem item = menu.findItem(R.id.action_search);
  206.         final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
  207.         searchView.setQueryHint(getString(R.string.type_name));
  208.         searchView.setIconified(true);
  209.         searchView.setOnQueryTextListener(this);
  210.         return true;
  211.     }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment