requireActivity instead of requireContext in fragment

Viewed 284

I am having a LiveData observer inside fragment, sometimes the code inside Observer{} throws error

Exception: java.lang.IllegalStateException: Fragment not attached to an activity.
at androidx.fragment.app.Fragment.requireActivity(Fragment.java:833)

It is happening because requireActivity() is returning null so the exception

myViewModel.saveData(data).observe(requireActivity(), Observer {
            it?.let { response->

                when(response.status){
                    Status.SUCCESS -> {
                       Toast.makeText(requireActivity(),"SUCCESS",Toast.LENGTH_LONG).show()
                    }
                    Status.ERROR -> {
                        Toast.makeText(requireActivity(),"ERROR",Toast.LENGTH_LONG).show()
                    }
                    Status.LOADING -> {
                    }
                }

            }
        })

I confirmed there is no scenario that my fragment being detached from the activity. I am suspecting the crash might be happening because I am not passing lifecycleowner reference to Observer?

0 Answers
Related