我有一个主机活动和一个片段。在这个片段中,我有一个更新方法,它从数据库中加载 AsyncTask 中的一些数据并更新 GridView。
当我从主机活动中调用此方法时,有时我会收到 NullPointerExeption,但我不知道为什么......
这是 Activity 的方法,它是一个接口:
@Override
public void onDataSetChange() {
((CalendarFragment) getSupportFragmentManager().findFragmentByTag(Constants.FRAGMENT_CALENDAR_TAG)).updateGridView();
}
以及 Fragment 的更新方法:
public void updateGridView() {
// Loading the new updated data
mLoadingTask = new LoadingDataTask();
mLoadingTask.execute((Void) null);
}
这是 logcat 中的异常:
04-17 12:05:28.366:E/AndroidRuntime(17789):致命异常:主要 04-17 12:05:28.366:E/AndroidRuntime(17789):java.lang.NullPointerException 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 com.sk.neverforget.MainActivity.onDataSetChange(MainActivity.java:397) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 com.sk.neverforget.fragments.DiaryFragment $StoringDataTask.onPostExecute(DiaryFragment.java:543) 04-17 12:05:28.366: E/AndroidRuntime(17789): at com.sk.neverforget.fragments.DiaryFragment$StoringDataTask.onPostExecute(DiaryFragment.java:1) 04- 17 12:05:28.366: E/AndroidRuntime(17789): 在 android.os.AsyncTask.finish(AsyncTask.java:631) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 android.os。 AsyncTask.access$600(AsyncTask.java:177) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 android.os。AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 04-17 12:05:28.366: E/AndroidRuntime(17789): at android.os.Handler.dispatchMessage(Handler.java:99) 04-17 12:05: 28.366: E/AndroidRuntime(17789): 在 android.os.Looper.loop(Looper.java:137) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 android.app.ActivityThread.main(ActivityThread .java:5039) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 java.lang.reflect.Method.invokeNative(Native Method) 04-17 12:05:28.366: E/AndroidRuntime(17789) : 在 java.lang.reflect.Method.invoke(Method.java:511) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:793) 04-17 12:05:28.366: E/AndroidRuntime(17789): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 04-17 12:05:28.366:E/AndroidRuntime(17789): 在 dalvik.system.NativeStart.main(Native Method)