edwinkr

(GET DATA)

Aug 11th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 12.55 KB | None | 0 0
  1. ========UNTUK API=========
  2.  
  3. //Model
  4. class ModelMaintenance {
  5.  
  6.     @SerializedName("id_maintenance") //ini yg ada di json untuk register dan insert ke tbl temp
  7.     var id_maintenance: String? = null
  8.  
  9.     @SerializedName("tgl_maintenance") //ini yg ada di json
  10.     var tgl_maintenance: String? = null
  11.  
  12.     @SerializedName("puskesmas") //ini yg ada di json
  13.     var puskesmas: String? = null
  14.  
  15.     @SerializedName("barang") //ini yg ada di json
  16.     var barang: String? = null
  17.  
  18.     @SerializedName("tipe") //ini yg ada di json
  19.     var tipe: String? = null
  20.  
  21.     @SerializedName("tindakan") //ini yg ada di json
  22.     var tindakan: String? = null
  23.  
  24.     @SerializedName("status") //ini yg ada di json
  25.     var status: String? = null
  26.  
  27.     @SerializedName("keterangan") //ini yg ada di json
  28.     var keterangan: String? = null
  29.  
  30.     @SerializedName("foto") //ini yg ada di json
  31.     var foto: String? = null
  32.  
  33.     @SerializedName("teknisi") //ini yg ada di json
  34.     var teknisi: String? = null
  35. }
  36.  
  37.  
  38. //JSON RESPONSE
  39. class JSONResponseMaintenance {
  40.     @SerializedName("list_maintenance") //ini yg ada di json untuk
  41.     var maintenance: ArrayList<ModelMaintenance>? = null
  42. }
  43.  
  44. //Interface
  45. interface RequestInterface {
  46.     //http://119.2.50.170:9095/maintenance/show_semua_maintenance
  47.     @GET("show_semua_maintenance")
  48.     fun getDataMaintenance(): Call< JSONResponseMaintenance>
  49. }
  50. ========UNTUK XML ADAPTER RECYCLERVIEW=========
  51. <?xml version="1.0" encoding="utf-8"?>
  52. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  53.         xmlns:app="http://schemas.android.com/apk/res-auto"
  54.         android:layout_width="match_parent"
  55.         android:layout_height="wrap_content"
  56.         android:clickable="true"
  57.         android:orientation="horizontal"
  58.         android:focusable="true"
  59.         android:id="@+id/layout_artikel"
  60.         android:padding="3dp">
  61.  
  62.         <LinearLayout
  63.                 android:layout_width="match_parent"
  64.                 android:layout_height="wrap_content"
  65.                 android:orientation="vertical"
  66.                 android:layout_marginTop="5dp"
  67.                 android:layout_marginStart="5dp"
  68.                 android:padding="5dp"
  69.                 android:layout_toEndOf="@id/image_view">
  70.             <TextView
  71.                     android:id="@+id/txt_tanggal_maintenance"
  72.                     android:layout_width="match_parent"
  73.                     android:layout_height="wrap_content"
  74.                     android:text="tgl maintenance"
  75.                     android:textSize="17sp"
  76.                     android:textColor="#000"
  77.                     android:fontFamily="@font/quicksand_medium" />
  78.  
  79.             <TextView
  80.                     android:id="@+id/txt_nama_puskesmas"
  81.                     android:layout_width="match_parent"
  82.                     android:layout_height="wrap_content"
  83.                     android:text="nama puskesmas"
  84.                     android:textSize="17sp"
  85.                     android:textColor="#000"
  86.                     android:fontFamily="@font/quicksand_medium" />
  87.         </LinearLayout>
  88. </RelativeLayout>
  89.  
  90. ========UNTUK CODING ADAPTER RECYCLERVIEW=========
  91. class AdapterDaftarMaintenance(private val context: Context, private val mFilteredList: ArrayList<ModelMaintenance>) :
  92.     RecyclerView.Adapter< AdapterDaftarMaintenance >() {
  93.  
  94.     override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): AdapterDaftarMaintenance.ViewHolder {
  95.         val view = LayoutInflater.from(viewGroup.context).inflate(R.layout.adapter_daftar_maintenance, viewGroup, false)
  96.         return ViewHolder(view)
  97.     }
  98.  
  99.     override fun onBindViewHolder(viewHolder: AdapterDaftarMaintenance.ViewHolder, position: Int) {
  100.  
  101.         viewHolder.txt_tanggal_maintenance.text = mFilteredList[position].tgl_maintenance
  102.         viewHolder.txt_nama_puskesmas.text = mFilteredList[position].puskesmas
  103.        
  104.     }
  105.  
  106.     override fun getItemCount(): Int {
  107.         return mFilteredList.size
  108.     }
  109.  
  110.     inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view), View.OnClickListener {
  111.         val txt_tanggal_maintenance: TextView
  112.         val txt_nama_puskesmas: TextView
  113.        
  114.         init {
  115.  
  116.             txt_tanggal_maintenance = view.findViewById(R.id.txt_tanggal_maintenance)
  117.             txt_nama_puskesmas = view.findViewById(R.id.txt_nama_puskesmas)
  118.            
  119.             view.setOnClickListener(this)
  120.  
  121.         }
  122.  
  123.         override fun onClick(view: View) {
  124.             //val intent = Intent(context, DaftarVariable::class.java)
  125.             //intent.putExtra("nama_bidang", txt_nama_bidang.text)
  126.             //context.startActivity(intent)
  127.         }
  128.     }
  129. }
  130.  
  131. ========CODING ADAPTER RECYCLER 2========
  132. public class AdapterPuskesmasKu extends RecyclerView.Adapter<AdapterPuskesmasKu.ViewHolder> implements Filterable {
  133.     private ArrayList<ModelSarkes> mArrayList;
  134.     private ArrayList<ModelSarkes> mFilteredList;
  135.     private Context context;
  136.  
  137.  
  138.  
  139.     public AdapterPuskesmasKu(Context context, ArrayList<ModelSarkes> arrayList) {
  140.         this.context = context;
  141.         this.mArrayList = arrayList;
  142.         this.mFilteredList = arrayList;
  143.     }
  144.  
  145.     @Override
  146.     public AdapterPuskesmasKu.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  147.         View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_puskesmasku, viewGroup, false);
  148.         //context = viewGroup.getContext();
  149.         //puskesmas = context.getResources().getStringArray(R.array.puskesmas);
  150.         return new ViewHolder(view);
  151.     }
  152.  
  153.     @Override
  154.     public void onBindViewHolder(ViewHolder viewHolder, int i) {
  155.  
  156.         //ModelDaftarPuskesmas ModelDasar = mArrayList.get(position);
  157.         viewHolder.txt_nama_puskesmas.setText(mFilteredList.get(i).getNama());
  158.         viewHolder.txt_alamat_puskesmas.setText(mFilteredList.get(i).getAlamat());
  159.         viewHolder.txt_telepon.setText(mFilteredList.get(i).getTelepon());
  160.         viewHolder.txt_gambar.setText(mFilteredList.get(i).getFoto());
  161.         viewHolder.txt_telepon_kantor.setText(mFilteredList.get(i).getTelepon_kantor());
  162.  
  163.         Glide.with(context).load(mFilteredList.get(i).getFoto())
  164.                 .placeholder(R.drawable.ic_hospital)
  165.                 .error(R.drawable.ic_hospital)
  166.                 .into(viewHolder.image);
  167.     }
  168.  
  169.     @Override
  170.     public int getItemCount() {
  171.         if (mFilteredList == null)
  172.             return 0;
  173.         else
  174.             return  mFilteredList.size();
  175.     }
  176.  
  177.     @Override
  178.     public Filter getFilter() {
  179.  
  180.         return new Filter() {
  181.             @Override
  182.             protected FilterResults performFiltering(CharSequence charSequence) {
  183.  
  184.                 String charString = charSequence.toString();
  185.  
  186.                 if (charString.isEmpty()) {
  187.  
  188.                     mFilteredList = mArrayList;
  189.                 } else {
  190.  
  191.                     ArrayList<ModelSarkes> filteredList = new ArrayList<>();
  192.  
  193.                     for (ModelSarkes androidVersion : mArrayList) {
  194.  
  195.                         if (androidVersion.getNama().toLowerCase().contains(charString)) {
  196.                             filteredList.add(androidVersion);
  197.                         }
  198.                     }
  199.                     mFilteredList = filteredList;
  200.                 }
  201.                 FilterResults filterResults = new FilterResults();
  202.                 filterResults.values = mFilteredList;
  203.                 return filterResults;
  204.             }
  205.             @Override
  206.             protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
  207.                 mFilteredList = (ArrayList<ModelSarkes>) filterResults.values;
  208.                 notifyDataSetChanged();
  209.             }
  210.         };
  211.     }
  212.  
  213.     public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  214.         private TextView txt_nama_puskesmas, txt_alamat_puskesmas, txt_telepon, txt_telepon_kantor, txt_gambar;
  215.         private ImageView image;
  216.  
  217.         public ViewHolder(View view) {
  218.             super(view);
  219.  
  220.             txt_nama_puskesmas = view.findViewById(R.id.txt_nama_puskesmas);
  221.             txt_alamat_puskesmas = view.findViewById(R.id.txt_alamat_puskesmas);
  222.             txt_telepon = view.findViewById(R.id.txt_telepon);
  223.             txt_telepon_kantor = view.findViewById(R.id.txt_telepon_kantor);
  224.             txt_gambar = view.findViewById(R.id.txt_gambar);
  225.             image = view.findViewById(R.id.image);
  226.  
  227.             view.setOnClickListener(this);
  228.         }
  229.  
  230.         @Override
  231.         public void onClick(View view) {
  232.             Intent detail = new Intent(view.getContext(), DetailPuskesmasKu.class);
  233.             detail.putExtra("nama_puskesmas", txt_nama_puskesmas.getText());
  234.             detail.putExtra("alamat", txt_alamat_puskesmas.getText());
  235.             detail.putExtra("telepon", txt_telepon.getText());
  236.             detail.putExtra("telepon_kantor", txt_telepon_kantor.getText());
  237.             detail.putExtra("foto", txt_gambar.getText());
  238.             view.getContext().startActivity(detail);
  239.  
  240.         }
  241.     }
  242. }
  243.  
  244.  
  245. ========UNTUK XML ACTIVITY=========
  246.  <ProgressBar
  247.                 android:id="@+id/progressBar"
  248.                 style="@style/Widget.AppCompat.ProgressBar.Horizontal"
  249.                 android:layout_width="match_parent"
  250.                 android:layout_height="wrap_content"
  251.                 android:indeterminate="true"
  252.                 app:layout_constraintTop_toTopOf="parent"
  253.                 android:layout_marginTop="5dp"
  254.                 android:visibility="gone"/>
  255.  
  256.         <TextView
  257.                 android:id="@+id/text_judul"
  258.                 android:layout_width="match_parent"
  259.                 android:layout_height="0dp"
  260.                 android:text="Daftar Maintenance"
  261.                 android:textSize="17sp"
  262.                 android:fontFamily="@font/quicksand_medium"
  263.                 android:textColor="#000"
  264.                 android:gravity="center"
  265.                 app:layout_constraintTop_toBottomOf="@+id/progressBar"/>
  266.  
  267.         <androidx.recyclerview.widget.RecyclerView
  268.                 android:layout_width="match_parent"
  269.                 android:layout_height="wrap_content"
  270.                 android:id="@+id/rv_maintenance"
  271.                 tools:layout_editor_absoluteX="0dp"
  272.                 android:layout_marginTop="8dp"
  273.                 app:layout_constraintTop_toBottomOf="@+id/text_judul"/>
  274.  
  275.  
  276. ========UNTUK CODING ACTIVITY=========
  277. class ListMaintenance : AppCompatActivity() {
  278.  
  279.     internal var adapterDaftarMaintenance: AdapterDaftarMaintenance? = null
  280.     lateinit var rv_maintenance : RecyclerView
  281.  
  282.     override fun onCreate(savedInstanceState: Bundle?) {
  283.         super.onCreate(savedInstanceState)
  284.         setContentView(R.layout.activity_list_maintenance)
  285.  
  286.         rv_maintenance = findViewById(R.id.rv_maintenance)
  287.         getmaintenance()
  288.         initViews()
  289.     }
  290.  
  291.     private fun initViews() {
  292.         rv_maintenance.setHasFixedSize(true)
  293.         val layoutManager = LinearLayoutManager(this)
  294.         rv_maintenance.setLayoutManager(layoutManager)
  295.     }
  296.     fun initJson(mArrayList: ArrayList<ModelMaintenance>) {
  297.         adapterDaftarMaintenance = AdapterDaftarMaintenance(this@ListMaintenane, mArrayList)
  298.         rv_maintenance.setAdapter(adapterDaftarMaintenance)
  299.         adapterDaftarMaintenance!!.notifyDataSetChanged()
  300.     }
  301.  
  302.     fun getMaintenance() {
  303.         val retrofit = Retrofit.Builder()
  304.             .baseUrl(BuildConfig.BASE_URL)
  305.             .addConverterFactory(GsonConverterFactory.create())
  306.             .client(
  307.                 OkHttpClient().newBuilder()
  308.                     .connectTimeout(30, TimeUnit.SECONDS)
  309.                     .readTimeout(30, TimeUnit.SECONDS)
  310.                     .writeTimeout(30, TimeUnit.SECONDS)
  311.                     .build()
  312.             )
  313.             .build()
  314.  
  315.         val request = retrofit.create(RequestInterface::class.java)
  316.         val call = request.getDataMaintenance()
  317.         call.enqueue(object : Callback<JSONResponseMaintenance> {
  318.             override fun onResponse(call: Call<JSONResponseMaintenance>, response: Response<JSONResponseMaintenance>) {
  319.                 try {
  320.                     val jsonResponse = response.body()
  321.                     initJson(jsonResponse.maintenance as ArrayList<ModelMaintenance>)
  322.                 } catch (e: Exception) {
  323.                     e.printStackTrace()
  324.                 }
  325.             }
  326.  
  327.             override fun onFailure(call: Call<JSONResponseMaintenance>, t: Throwable) {
  328.                 Log.d("Error", t.message)
  329.                 Toast.makeText(this@ListMaintenance, "Periksa koneksi internet anda", Toast.LENGTH_SHORT).show()
  330.             }
  331.         })
  332.     }
  333. }
Add Comment
Please, Sign In to add comment