【问题标题】:NullPointerException In ArrayAdapterArrayAdapter 中的 NullPointerException
【发布时间】:2021-11-17 09:12:03
【问题描述】:

我尝试从 Firebase 获取数据,数据将显示在“微调器”中 数据显示在微调器中

但是

片段工作(Penilaian Fragment),但是当我更改片段并单击其他片段中的对话框时,它会显示如下错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sariazhariyah.eassessmentinteraktif, PID: 7214
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context androidx.fragment.app.FragmentActivity.getBaseContext()' on a null object reference
        at com.sariazhariyah.eassessmentinteraktif.PenilaianFragment$5.onEvent(PenilaianFragment.java:377)
        at com.sariazhariyah.eassessmentinteraktif.PenilaianFragment$5.onEvent(PenilaianFragment.java:366)
        at com.google.firebase.firestore.Query.lambda$addSnapshotListenerInternal$2(com.google.firebase:firebase-firestore@@21.4.3:1045)
        at com.google.firebase.firestore.Query$$Lambda$3.onEvent(Unknown Source:6)
        at com.google.firebase.firestore.core.AsyncEventListener.lambda$onEvent$0(com.google.firebase:firebase-firestore@@21.4.3:42)
        at com.google.firebase.firestore.core.AsyncEventListener$$Lambda$1.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7860)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)

在代码中,我写了一个这样的数组适配器

arraykelas.add("--Pilih Kelas--");
                      for(DocumentSnapshot documentSnapshot:queryDocumentSnapshots){
                          arraykelas.add(documentSnapshot.get("kelas").toString());
                      }

                      kelasarrayadapter = new ArrayAdapter(getActivity().getBaseContext(),android.R.layout.simple_spinner_dropdown_item,arraykelas);
                      kelasspinner.setAdapter(kelasarrayadapter);

【问题讨论】:

  • 将活动添加为上下文,将活动添加为上下文,
  • 对不起,怎么添加?

标签: android arraylist spinner


【解决方案1】:

当您尝试设置微调器适配器时,当您使用另一个线程获取数据并且当响应到来时线程调用您调用的方法但您的片段不在堆栈中时,这可能是可能的,这就是为什么响应后活动上下文也为空,您可以在片段 onDestroy() 中取消网络请求,或者如果您想要一个简单的解决方案,您可以在任何地方使用上下文之前检查 getActivity()!=null

【讨论】:

    【解决方案2】:

    当您更改片段时,您的函数会加载数据并尝试将其放入微调器中。但是在另一个片段中旋转。尝试解决它。我可能会出错,因为这里的代码不够。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多