
Bukalah file UserDao.kt lalu masukan kode berikut ini:
@Query("DELETE FROM user WHERE id = :id")
suspend fun hapusById(id: Int)
Keterangan:
Bukalah file SecondFragment.kt lalu buatlah kode ini di atas fungsi onCreate:
Masih dalam file SecondFragment.kt lalu buatlah fungsi refreshView seperti dibawah ini:
fun refreshView(){
parentFragmentManager.beginTransaction()
.detach(this)
.commit()
parentFragmentManager.beginTransaction()
.attach(this)
.commit()
}
Keterangan:
Masih dalam file SecondFragment.kt lalu buatlah fungsi bikinTombol seperti dibawah ini:
fun bikinTombol(teks:String, id: Int, indeks: Int){
val tombol = Button(activity).apply {
text = “Hapus “+teks
layoutParams = FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT
)
}
val params = tombol.layoutParams as ViewGroup.MarginLayoutParams
if(indeks==0)
params.marginStart =5
else
params.marginStart +=200
params.topMargin = 70
tombol.layoutParams = params
wadah.addView(tombol)
tombol.setOnClickListener {
lifecycleScope.launch {
vm.userDao.hapusById(id)
refreshView()
}
}
}
Masih dalam file SecondFragment.kt lalu rubahlah kode pada metode onViewCreated menjadi seperti berikut ini:
wadah = view.findViewById<FrameLayout>(R.id.viewSecondFragment);
val tekview:TextView = view.findViewById<TextView>(R.id.txtTampil);
lifecycleScope.launch {
var dataUser = vm.userDao.ambilSemua()
val teks = dataUser.joinToString(separator = “\n”) { user ->
“Nama : ${user.nama}, Hobi: ${user.hobi}”
}
withContext(Dispatchers.Main) {
tekview.setText(teks)
dataUser.forEachIndexed { indeks, orang ->
bikinTombol(orang.nama, orang.id, indeks)
}
}
}
Keterangan:
Pilih virtual devicemu lalu tekan tombol Play