【问题标题】:W/System.err: java.lang.IllegalStateException: Fragment xxxxx not attached to a contextW/System.err:java.lang.IllegalStateException:片段 xxxxx 未附加到上下文
【发布时间】:2020-02-26 05:37:04
【问题描述】:

我不断收到 IllegalStateException

W/System.err: java.lang.IllegalStateException: Fragment RunScenarioFragment{8b6deff} (3523a253-d2c8-49f3-95ea-33bbbc0c308a)} not attached to a context.

在这一行:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.green_check);

我查看了其他帖子,但对 android studio 有点陌生,并且无法根据我的问题调整他们的解决方案。任何帮助将不胜感激。

根据评论更新

这种情况并非每次都会发生。只有在我切换屏幕/片段(底部导航)并单击启动此过程的项目之后。它发生在片段的 onCreate 方法中的匿名例程中。

【问题讨论】:

  • “这条线”在哪里执行?如果它在系统调用之前被调用,onAttach 片段将没有上下文。
  • 查看其他 cmets。片段的 onCreate 方法中的匿名子例程。它在使用底部导航更改片段后间歇性发生。

标签: android illegalstateexception


【解决方案1】:

getResources() 方法在从片段调用时在内部返回 requireActivity().getResources()

requireActivity() 如果当前未与活动关联或仅与上下文关联,则抛出 IllegalStateException。

您提到您的代码是从片段的 onCreate 方法调用的。可以在 Fragment 的 Activity 仍在创建过程中时调用此方法。

如果与实例化用户界面有关,请将代码 sn-p 从 onCreate 方法移动到 onCreateView 方法;或者您可以将其移至 onActivityCreated

【讨论】:

  • 它在片段内观察者的 onChanged 事件中被调用,该事件是从片段的 onCreateView 事件中设置的回收器视图适配器的 onItemClicked 事件中调用的。
猜你喜欢
  • 2021-09-28
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多