У меня проблема с обработкой навигации в моем приложении, сейчас у меня исключение нулевого указателя:
at com.lswarss.ing_project.fragments.PostsFragment.onViewCreated(PostsFragment.kt:56)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:332)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2629)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2722)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1188)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1514)
at android.app.Activity.performStart(Activity.java:7838)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3398)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)```
It throws on my PostsFragment function navigation:
class PostsFragment : Fragment(), View.OnClickListener {
private val viewModel : PostsViewModel by lazy {
ViewModelProvider(this).get(PostsViewModel::class.java)
}
lateinit var navController: NavController
private val adapter = PostsAdapter()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding = PostsFragmentBinding.inflate(inflater)
binding.setLifecycleOwner(this)
binding.viewModel = viewModel
viewModel.posts.observe(viewLifecycleOwner, Observer {
adapter.submitList(it)
})
binding.recyclerViewPosts.adapter = adapter
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
navController = Navigation.findNavController(view)
view.findViewById<TextView>(R.id.post_comment).setOnClickListener(this)
view.findViewById<TextView>(R.id.post_user).setOnClickListener(this)
}
override fun onClick(v: View?) {
when(v!!.id){
R.id.post_user -> {
val bundle = bundleOf("postProperties" to UserFragmentArgs)
navController!!.navigate(R.id.navigation_to_user)
}
R.id.post_comment -> {
val bundle = bundleOf("postProperties" to CommentsFragmentArgs)
navController!!.navigate(R.id.navigation_to_comments)
}
}
}
}
Я новичок в android и думаю, что я перестал сложный и неправильно написанный мой проект. Вот ссылка на репо, если это как-то помогает, самые последние изменения находятся в ветке fragments_navigation: https://github.com/LSWarss/ing_project