I have an Activity with two Fragments, and I am getting a list of users from my database and storing in an ArrayList in my MainActivity. The problem is that the Adapter is in one of my Fragments. So what I want to do is call this method "initAdapter" inside my Fragment only when I finish getting the data from my Activity.
I tried this:
ExternsFragment fragment =
(ExternsFragment) getSupportFragmentManager().findFragmentById(R.id.viewPager);
fragment.initAdapters(listUsers);
But I am getting an "Attempt to invoke a virtual method on a null object or reference" error. So I think this is not the right way to do that. How can I execute this method inside my Fragment only after I finish another in my Activity?
This is my stack trace:
09-13 18:05:30.948 23890-23890/com.construct.test I/System.out: 200
09-13 18:05:30.953 23890-23890/com.construct.test D/AndroidRuntime: Shutting down VM
09-13 18:05:30.993 1121-24364/? I/EventLogSendingHelper: Sending log events.
09-13 18:05:31.103 23890-23890/com.construct.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.construct.test, PID: 23890
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.construct.v2.activities.teams.ExternsFragment.initAdapters(java.util.List)' on a null object reference
at com.construct.v2.activities.teams.ActivityTeams$3.onResponse(ActivityTeams.java:165)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
09-13 18:05:31.104 3100-4960/? W/ActivityManager: Force finishing activity com.construct.test/com.construct.v2.activities.teams.ActivityTeams