为什么回收器视图在片段中有NullPointerException ?



所以这里是我的回收器视图适配器的代码,它位于onCreate:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
databaseReference = FirebaseDatabase.getInstance().getReference("profilUsaha")
auth = FirebaseAuth.getInstance()
uid = auth.currentUser?.uid.toString()
daftar_pesan_recycler_view.adapter = adapter
listenForLatestMessages()
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}

但是不知怎么的,出现了以下错误:

2022-07-20 00:29:23.872 17032-17032/com.example.gesit E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.gesit, PID: 17032
java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference
at com.example.gesit.PesanFragment.onCreate(PesanFragment.kt:51)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2981)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:474)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

如何解决这个问题?谢谢。

onCreate()在片段生命周期中还太早,片段视图还没有被创建。

您可以移动视图设置代码,例如将recyclerview适配器设置为onViewCreated()

可能不是这样,但是…作为一般规则,所有需要活动实例的初始化必须在onActivityCreated()中(或片段生命周期中的下一个方法)。在onCreateView()内部,getActivity()不保证返回非空值。在某些情况下,它返回null。

所以确保你的RecyclerView不是null

相关内容

  • 没有找到相关文章

最新更新