在我的碎片中,我在许多地方使用资源字符串。理想情况下,一切都正常工作。
但是,我经常收到崩溃报告,报告显示
此外,我可以使用以下实现,但不确定是否正确?在片段的
但是,我经常收到崩溃报告,报告显示
IllegalStateException
,表示片段未附加到活动中。我能想到的一个可能的解决方案是使用 isAdded()
方法来返回是否将片段附加到活动中,但在访问字符串资源之前在所有地方使用它似乎不是一个正确的解决方案,因为它可能会破坏流程。此外,我可以使用以下实现,但不确定是否正确?在片段的
onAttach
中初始化 mActivity
,然后使用它来获取资源字符串。@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof Activity) {
mActivity = (Activity) context;
}
}
与其
getString(R.string.string_resource)
使用
mActivity.getString(R.string.string_resource)
我能否确信使用这个方法会停止 IllegalStateExceptions
的出现?
Activity
和Fragment
的代码吗?或者是出现错误的函数? - Susmit AgrawalIllegalStateException
的堆栈跟踪以及此跟踪中列出的方法。听起来问题是您在生命周期的早期阶段(在调用onAttach
之前)执行了某些操作。 - Janus Varmarken