Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ========UNTUK API=========
- //Model
- class ModelMaintenance {
- @SerializedName("id_maintenance") //ini yg ada di json untuk register dan insert ke tbl temp
- var id_maintenance: String? = null
- @SerializedName("tgl_maintenance") //ini yg ada di json
- var tgl_maintenance: String? = null
- @SerializedName("puskesmas") //ini yg ada di json
- var puskesmas: String? = null
- @SerializedName("barang") //ini yg ada di json
- var barang: String? = null
- @SerializedName("tipe") //ini yg ada di json
- var tipe: String? = null
- @SerializedName("tindakan") //ini yg ada di json
- var tindakan: String? = null
- @SerializedName("status") //ini yg ada di json
- var status: String? = null
- @SerializedName("keterangan") //ini yg ada di json
- var keterangan: String? = null
- @SerializedName("foto") //ini yg ada di json
- var foto: String? = null
- @SerializedName("teknisi") //ini yg ada di json
- var teknisi: String? = null
- }
- //JSON RESPONSE
- class JSONResponseMaintenance {
- @SerializedName("list_maintenance") //ini yg ada di json untuk
- var maintenance: ArrayList<ModelMaintenance>? = null
- }
- //Interface
- interface RequestInterface {
- //http://119.2.50.170:9095/maintenance/show_semua_maintenance
- @GET("show_semua_maintenance")
- fun getDataMaintenance(): Call< JSONResponseMaintenance>
- }
- ========UNTUK XML ADAPTER RECYCLERVIEW=========
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:clickable="true"
- android:orientation="horizontal"
- android:focusable="true"
- android:id="@+id/layout_artikel"
- android:padding="3dp">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:layout_marginTop="5dp"
- android:layout_marginStart="5dp"
- android:padding="5dp"
- android:layout_toEndOf="@id/image_view">
- <TextView
- android:id="@+id/txt_tanggal_maintenance"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="tgl maintenance"
- android:textSize="17sp"
- android:textColor="#000"
- android:fontFamily="@font/quicksand_medium" />
- <TextView
- android:id="@+id/txt_nama_puskesmas"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="nama puskesmas"
- android:textSize="17sp"
- android:textColor="#000"
- android:fontFamily="@font/quicksand_medium" />
- </LinearLayout>
- </RelativeLayout>
- ========UNTUK CODING ADAPTER RECYCLERVIEW=========
- class AdapterDaftarMaintenance(private val context: Context, private val mFilteredList: ArrayList<ModelMaintenance>) :
- RecyclerView.Adapter< AdapterDaftarMaintenance >() {
- override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): AdapterDaftarMaintenance.ViewHolder {
- val view = LayoutInflater.from(viewGroup.context).inflate(R.layout.adapter_daftar_maintenance, viewGroup, false)
- return ViewHolder(view)
- }
- override fun onBindViewHolder(viewHolder: AdapterDaftarMaintenance.ViewHolder, position: Int) {
- viewHolder.txt_tanggal_maintenance.text = mFilteredList[position].tgl_maintenance
- viewHolder.txt_nama_puskesmas.text = mFilteredList[position].puskesmas
- }
- override fun getItemCount(): Int {
- return mFilteredList.size
- }
- inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view), View.OnClickListener {
- val txt_tanggal_maintenance: TextView
- val txt_nama_puskesmas: TextView
- init {
- txt_tanggal_maintenance = view.findViewById(R.id.txt_tanggal_maintenance)
- txt_nama_puskesmas = view.findViewById(R.id.txt_nama_puskesmas)
- view.setOnClickListener(this)
- }
- override fun onClick(view: View) {
- //val intent = Intent(context, DaftarVariable::class.java)
- //intent.putExtra("nama_bidang", txt_nama_bidang.text)
- //context.startActivity(intent)
- }
- }
- }
- ========CODING ADAPTER RECYCLER 2========
- public class AdapterPuskesmasKu extends RecyclerView.Adapter<AdapterPuskesmasKu.ViewHolder> implements Filterable {
- private ArrayList<ModelSarkes> mArrayList;
- private ArrayList<ModelSarkes> mFilteredList;
- private Context context;
- public AdapterPuskesmasKu(Context context, ArrayList<ModelSarkes> arrayList) {
- this.context = context;
- this.mArrayList = arrayList;
- this.mFilteredList = arrayList;
- }
- @Override
- public AdapterPuskesmasKu.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
- View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_puskesmasku, viewGroup, false);
- //context = viewGroup.getContext();
- //puskesmas = context.getResources().getStringArray(R.array.puskesmas);
- return new ViewHolder(view);
- }
- @Override
- public void onBindViewHolder(ViewHolder viewHolder, int i) {
- //ModelDaftarPuskesmas ModelDasar = mArrayList.get(position);
- viewHolder.txt_nama_puskesmas.setText(mFilteredList.get(i).getNama());
- viewHolder.txt_alamat_puskesmas.setText(mFilteredList.get(i).getAlamat());
- viewHolder.txt_telepon.setText(mFilteredList.get(i).getTelepon());
- viewHolder.txt_gambar.setText(mFilteredList.get(i).getFoto());
- viewHolder.txt_telepon_kantor.setText(mFilteredList.get(i).getTelepon_kantor());
- Glide.with(context).load(mFilteredList.get(i).getFoto())
- .placeholder(R.drawable.ic_hospital)
- .error(R.drawable.ic_hospital)
- .into(viewHolder.image);
- }
- @Override
- public int getItemCount() {
- if (mFilteredList == null)
- return 0;
- else
- return mFilteredList.size();
- }
- @Override
- public Filter getFilter() {
- return new Filter() {
- @Override
- protected FilterResults performFiltering(CharSequence charSequence) {
- String charString = charSequence.toString();
- if (charString.isEmpty()) {
- mFilteredList = mArrayList;
- } else {
- ArrayList<ModelSarkes> filteredList = new ArrayList<>();
- for (ModelSarkes androidVersion : mArrayList) {
- if (androidVersion.getNama().toLowerCase().contains(charString)) {
- filteredList.add(androidVersion);
- }
- }
- mFilteredList = filteredList;
- }
- FilterResults filterResults = new FilterResults();
- filterResults.values = mFilteredList;
- return filterResults;
- }
- @Override
- protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
- mFilteredList = (ArrayList<ModelSarkes>) filterResults.values;
- notifyDataSetChanged();
- }
- };
- }
- public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
- private TextView txt_nama_puskesmas, txt_alamat_puskesmas, txt_telepon, txt_telepon_kantor, txt_gambar;
- private ImageView image;
- public ViewHolder(View view) {
- super(view);
- txt_nama_puskesmas = view.findViewById(R.id.txt_nama_puskesmas);
- txt_alamat_puskesmas = view.findViewById(R.id.txt_alamat_puskesmas);
- txt_telepon = view.findViewById(R.id.txt_telepon);
- txt_telepon_kantor = view.findViewById(R.id.txt_telepon_kantor);
- txt_gambar = view.findViewById(R.id.txt_gambar);
- image = view.findViewById(R.id.image);
- view.setOnClickListener(this);
- }
- @Override
- public void onClick(View view) {
- Intent detail = new Intent(view.getContext(), DetailPuskesmasKu.class);
- detail.putExtra("nama_puskesmas", txt_nama_puskesmas.getText());
- detail.putExtra("alamat", txt_alamat_puskesmas.getText());
- detail.putExtra("telepon", txt_telepon.getText());
- detail.putExtra("telepon_kantor", txt_telepon_kantor.getText());
- detail.putExtra("foto", txt_gambar.getText());
- view.getContext().startActivity(detail);
- }
- }
- }
- ========UNTUK XML ACTIVITY=========
- <ProgressBar
- android:id="@+id/progressBar"
- style="@style/Widget.AppCompat.ProgressBar.Horizontal"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:indeterminate="true"
- app:layout_constraintTop_toTopOf="parent"
- android:layout_marginTop="5dp"
- android:visibility="gone"/>
- <TextView
- android:id="@+id/text_judul"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:text="Daftar Maintenance"
- android:textSize="17sp"
- android:fontFamily="@font/quicksand_medium"
- android:textColor="#000"
- android:gravity="center"
- app:layout_constraintTop_toBottomOf="@+id/progressBar"/>
- <androidx.recyclerview.widget.RecyclerView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:id="@+id/rv_maintenance"
- tools:layout_editor_absoluteX="0dp"
- android:layout_marginTop="8dp"
- app:layout_constraintTop_toBottomOf="@+id/text_judul"/>
- ========UNTUK CODING ACTIVITY=========
- class ListMaintenance : AppCompatActivity() {
- internal var adapterDaftarMaintenance: AdapterDaftarMaintenance? = null
- lateinit var rv_maintenance : RecyclerView
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_list_maintenance)
- rv_maintenance = findViewById(R.id.rv_maintenance)
- getmaintenance()
- initViews()
- }
- private fun initViews() {
- rv_maintenance.setHasFixedSize(true)
- val layoutManager = LinearLayoutManager(this)
- rv_maintenance.setLayoutManager(layoutManager)
- }
- fun initJson(mArrayList: ArrayList<ModelMaintenance>) {
- adapterDaftarMaintenance = AdapterDaftarMaintenance(this@ListMaintenane, mArrayList)
- rv_maintenance.setAdapter(adapterDaftarMaintenance)
- adapterDaftarMaintenance!!.notifyDataSetChanged()
- }
- fun getMaintenance() {
- val retrofit = Retrofit.Builder()
- .baseUrl(BuildConfig.BASE_URL)
- .addConverterFactory(GsonConverterFactory.create())
- .client(
- OkHttpClient().newBuilder()
- .connectTimeout(30, TimeUnit.SECONDS)
- .readTimeout(30, TimeUnit.SECONDS)
- .writeTimeout(30, TimeUnit.SECONDS)
- .build()
- )
- .build()
- val request = retrofit.create(RequestInterface::class.java)
- val call = request.getDataMaintenance()
- call.enqueue(object : Callback<JSONResponseMaintenance> {
- override fun onResponse(call: Call<JSONResponseMaintenance>, response: Response<JSONResponseMaintenance>) {
- try {
- val jsonResponse = response.body()
- initJson(jsonResponse.maintenance as ArrayList<ModelMaintenance>)
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- override fun onFailure(call: Call<JSONResponseMaintenance>, t: Throwable) {
- Log.d("Error", t.message)
- Toast.makeText(this@ListMaintenance, "Periksa koneksi internet anda", Toast.LENGTH_SHORT).show()
- }
- })
- }
- }
Add Comment
Please, Sign In to add comment