Dependencies
dependencies {
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
ViewModel class and LiveData
class PracticeProgressViewModel : ViewModel() {
private val _text = MutableLiveData<String>().apply {
value = ""
}
val text: MutableLiveData<String> = _text
fun setText(value: String){
_text.value = value
}
}
Fragment
class PracticeProgressFragment : Fragment() {
private val homeViewModel: PracticeProgressViewModel by activityViewModels()
Observer Pattern
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
homeViewModel.text.observe(viewLifecycleOwner, {
textView.text = it
})
Update the ViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val button = binding.button
button.setOnClickListener(View.OnClickListener {
val totalAmoint = practiceDao.getTotalAmount()
homeViewModel.setText(totalAmoint.toString())
})
}






