I am trying to transfer data from a dialog fragment to a fragment from the place where it is shown. I used live ViewModel data, but the observer not calling in the fragment.
Are there any mistakes I made, tell me please?
DialogFragment:
private val viewModel: FacilityViewModel by viewModels {
ViewModelFactory(FacilityRepository(RemoteDataSource().buildApi(FacilityAPI::class.java)))
}
binding.btnDone.setOnClickListener{
//mOnInputListener?.sendInput(coordinates)
viewModel.setMapPoint(coordinates)
dismiss()
}
Fragment (observer inside of onViewCreated):
viewModel.mapPoint.observe(viewLifecycleOwner, Observer<Point> {point ->
logD("POintssss is: " point.longitude.toString())
if(point.latitude !=0.0 && point.longitude != 0.0){
binding.coordinates.text = point.latitude.toString() point.longitude.toString()
}
})
YandexMapFragment().show(requireActivity().supportFragmentManager, "tag")
ViewModel:
private val _mapPoint = MutableLiveData<Point>()
val mapPoint: LiveData<Point>
get() = _mapPoint
fun setMapPoint(point: Point) {
logD("setMapPOint started: ${point.longitude}")
_mapPoint.value = point
}
CodePudding user response: