Comunication between activity and framgment is not working, observing barcode is executing when ubdating barcode LiveData value.
MainActivity
private val viewModel: BarcodeViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
**viewModel.barcode.observe(this) {
binding.barcodes.text = it
}**
}
in ScannerFragment i am creating viewmodel like this and updating barcode value when it scanned.
private val viewModel: BarcodeViewModel by activityViewModels()
BarcodeViewModel
class BarcodeViewModel: ViewModel() {
private val mutableSelectedItem = MutableLiveData<String>()
val barcode: LiveData<String> = mutableSelectedItem
fun selectBarcode(item: String) {
mutableSelectedItem.value = item
}
}
i am trying to create shared instance of BarcodeViewModel. after updating barcode Livedata update UI in MainActivity.