У меня есть хост-активность и фрагмент. В этом фрагменте у меня есть метод обновления, который загружает некоторые данные в AsyncTask из БД и обновляет GridView.Вызов метода Фрагмента из области Упражнение
Когда я называю этот метод от хозяина деятельности иногда я получаю NullPointerExeption, и я не знаю, почему ...
Вот метод своей деятельности, которая представляет собой интерфейс:
@Override
public void onDataSetChange() {
((CalendarFragment) getSupportFragmentManager().findFragmentByTag(Constants.FRAGMENT_CALENDAR_TAG)).updateGridView();
}
И метод обновления фрагмента:
public void updateGridView() {
// Loading the new updated data
mLoadingTask = new LoadingDataTask();
mLoadingTask.execute((Void) null);
}
Вот исключение в LogCat:
04-17 12: 05: 28,366: Е/AndroidRuntime (17789): неустранимые: Основной 04-17 12: 05: 28,366: Е/AndroidRuntime (17789): java.lang.NullPointerException 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at com.sk.neverforget.MainActivity.onDataSetChange (MainActivity.java:397) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at 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): at android.os.AsyncTask.finish (AsyncTask.java:631) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at android.os.AsyncTask.access $ 6 00 (AsyncTask.java:177) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at 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): at android.os.Looper.loop (Looper.java:137) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at android.app.ActivityThread.main (ActivityThread.java:5039) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at java.lang.reflect.Method.invokeNative (собственный метод) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at java.lang.reflect.Method.invoke (Method.java : 511) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) 04-17 12: 05: 28.366: E/AndroidRuntime (17789): at dalvik.system.NativeStart.main (родной метод)
Я предполагаю, что findfragmentbytag возвращает значение null, попробуйте присвоить свой фрагмент переменной перед запуском метода и отладки, чтобы узнать, является ли ваш фрагмент нулевым или нет, если так выяснить, почему он равен нулю. – ePeace
Странно. Эти теги расположены и задаются в отдельном статическом классе Constants. Но я попробую ваше предложение. – Seishin
Отправьте логарифм исключения, пожалуйста. – Egor