Menggunakan Retrofit dan MVVM Architecture dengan kotlin — Bagian 2

Muhamad Azmi Rizkifar
Chevalier Lab
Published in
3 min readApr 9, 2020

Hallo semuanyaa…

Sekarang kita lanjut bagian kedua nya untuk tutorial penggunaan Retrofit dan MVVM Archtecture. Untuk tutorial bagian pertamanya bisa temen-temen lihat di sini :

Langsung aja yaa, pertama kita buat empty activity

Lalu beri nama DetailNegaraActivity, dan centang bagian Generate Layout File

Setelah activity terbuat, buka activity_detail_negara.xml dan isi dengan kode berikut

activity_detail_negara.xml

Lalu buka Pojo class Negara dan tambahkan notasi Parcelize dan extend ke Parcelable. Hal ini dilakukan supaya kita bisa mengirimkan data berupa objek ke activity lain yang dikirimkan bersama intent.
Silahkan baca disini untuk detail penjelasan mengenai parcelable.

@Parcelize
data class Negara (
val namaNegara: String,
val ibuKota: String,
val jumlahPenduduk: String,
val mataUang: String,
val gambar: String
) : Parcelable

Kemudian kita buat intent sekaligus mengirim object dari Pojo class Negara ke activity DetailNegaraActivity di bagian method onItemClicked() di dalam MainActivity

override fun onItemClicked(view: View, negara: Negara) {
val intent = Intent(this, DetailNegaraActivity::class.java)
intent.putExtra("negara", negara)
startActivity(intent)

}

Setelah itu kita ke DetailNegaraActivity lalu buat variabel binding di dalam class DetailNegaraActivity

class DetailNegaraActivity : AppCompatActivity() {

private lateinit var binding: ActivityDetailNegaraBinding

...
}

Jika terjadi error atau kodingan menjadi warna merah, coba untuk clean project/rebuild project. Jika masih berwarna merah, coba untuk Invalidate Caches and Restart.

Selanjutnya kita inisialisasi binding dan ambil data berupa object yang sebelumnya kita kirim di MainActivity, lalu set textView dengan data yang kita terima

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,
R.layout.activity_detail_negara)

// ambil data yang dikirimkan oleh MainActivity
val negara = intent.getParcelableExtra<Negara>("negara")

if (negara != null) {
binding.tvNamaNegara.text = negara.namaNegara
binding.tvIbuKota.text = negara.ibuKota
binding.tvMataUang.text = negara.mataUang
binding.tvJumlahPenduduk.text = negara.jumlahPenduduk
}


}

Kemudian kita set image resourcenya menggunakan library Glide

override fun onCreate(savedInstanceState: Bundle?) {    ...    if (negara != null) {        ...        // set resource image
Glide.with(this)
.load(negara.gambar)
.placeholder(R.drawable.ic_launcher_foreground)
.dontAnimate()
.into(binding.imageNegara)

}

}

Ketika digabung, DetailNegaraActivity menjadi seperti ini

Setelah semua langkah diikuti dengan benar, coba jalankan projectnya dan kurang lebih hasilnya seperti ini

Nahh itulah tutorial menggunakan Retrofit dan MVVM Architecture dengan kotlin, semoga bermanfaat yahh!

Source code tutorial ini bisa diambil disini yaa :

--

--