기록
[Error] Fragment not associated with a fragment manager. 본문
[Study]/Android
[Error] Fragment not associated with a fragment manager.
Dannnnnn 2022. 9. 23. 11:33반응형
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
when (menuItem.itemId) {
R.id.delete_menu -> {
viewModel.deleteNote(note)
this@SelectedNoteFragment.findNavController().popBackStack()
}
else -> return false
}
return true
}
java.lang.IllegalStateException: Fragment SelectedNoteFragment{e2fb287} (9027fbbf-8601-4b62-ab29-fdbea88a370d) not associated with a fragment manager.
findNavController()를 onCreateView와 onMenuItemSelected 두 곳에서 생성하여 쓰고 있었다.
Find a NavController given a Fragment Calling this on a Fragment that is not a NavHostFragment or within a NavHostFragment will result in an IllegalStateException 관계?
val navController = findNavController()
val menuHost: MenuHost = requireActivity()
menuHost.addMenuProvider( object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.selected_note_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
when (menuItem.itemId) {
R.id.delete_menu -> {
viewModel.deleteNote(note)
navController.navigateUp()
}
else -> return false
}
return true
}
})
변수를 만들어 참조하니 해결되었다.
반응형
'[Study] > Android' 카테고리의 다른 글
[Android] LiveData (0) | 2022.09.29 |
---|---|
[Bug] onMenuItemSelected에서 이전 값을 참조하는 현상 (0) | 2022.09.24 |
[Android] 프레그먼트간 전환을 돕는 NavDirection 클래스 (0) | 2022.06.02 |
[Android/Kotlin] 데이터바인딩 (DataBinding) (0) | 2022.06.02 |
java.lang.NoSuchMethodError: No static method metafactory 해결 (0) | 2022.06.01 |