Issue
I have tried to get data from Firebase, and data will show in 'spinner' data showed in spinner
but
Fragment work (Penilaian Fragment), but when I change fragment and click dialog in other fragments it shows error like this
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)
in code, I wrote an array adapter like this
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);
Solution
When you are trying to set spinner adapter your activity context gets null this can be possible when you fetch data using another thread and when the response comes the thread calls the method you called but your fragment is not in stack and thats why the activities context is also null after your response comes either you can cancel network requests in your fragments onDestroy() or if you want a simple solution you can check getActivity()!=null before using the context anywhere
Answered By - Rohit Sharma
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.