我有一个包含两个片段的Activity,我从我的数据库中获取一个用户列表,并存储在MainActivity中的ArrayList中。问题是适配器在我的一个片段中。所以我想要做的就是调用这个方法" initAdapter"只有当我从我的Activity中获取数据时才在我的片段中。
我试过了:
ExternsFragment fragment =
(ExternsFragment) getSupportFragmentManager().findFragmentById(R.id.viewPager);
fragment.initAdapters(listUsers);
但是我得到了一个"尝试在空对象或引用上调用虚方法"错误。所以我认为这不是正确的方法。只有在我的Activity中完成另一个后,我怎么能在Fragment中执行这个方法?
这是我的堆栈跟踪:
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