В моем приложении есть фрагмент, который я использую для отображения данных, и действие «Настройки», которое я использую для изменения некоторых настроек в приложении.Когда я перехожу к действиям с настройками через панель навигации, а затем возвращаюсь к главному экрану (без изменения настроек), приложение вылетает с таким исключением:
java.lang.IllegalStateException: Fragment NowWeatherFragment{b7914f8 (0e67ee0d-8776-45b5-9fd7-ee69841c31d1)} not attached to a context
Кажется,происходило после ответа от вызова API, и было достойное объяснение, почему из другого ответа на SO, но ничего, что я пробовал, не смогло это исправить.
Я видел несколько других вопросов оэто, но у меня проблемы с применением ответов на них в моей ситуации.Я попытался проверить isAttached (), но это не помогло, а также проверил нулевую проверку фрагмента, но он все еще получает то же исключение
Вместо публикации всех классов, некоторые из которых оченьдолго, вот репозиторий GitHub.Оно должно быть довольно легким и простым для запуска на устройстве через Android Studio https://github.com/jollygreenegiant/SimpleWeather
Я ожидаю, что приложение просто вернется на главный экран и отобразит данные о погоде, как при запуске.
Вот полная трассировка стека:
java.lang.IllegalStateException: Fragment NowWeatherFragment{b7914f8 (0e67ee0d-8776-45b5-9fd7-ee69841c31d1)} not attached to a context.
at androidx.fragment.app.Fragment.requireContext(Fragment.java:765)
at androidx.fragment.app.Fragment.getResources(Fragment.java:829)
at com.jggdevelopment.simpleweather.fragments.NowWeatherFragment.setupViews(NowWeatherFragment.java:82)
at com.jggdevelopment.simpleweather.fragments.NowWeatherFragment$3.onSharedPreferenceChanged(NowWeatherFragment.java:152)
at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:612)
at android.app.SharedPreferencesImpl$EditorImpl.commit(SharedPreferencesImpl.java:598)
at com.jggdevelopment.simpleweather.fragments.MasterFragment.updateConditions(MasterFragment.java:263)
at com.jggdevelopment.simpleweather.services.WeatherAPIUtils$2.onResponse(WeatherAPIUtils.java:92)
at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$1.run(DefaultCallAdapterFactory.java:83)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)