如何解决从包中检索传递的参数时,为什么Android Studio会警告并建议使用requireArguments而不是参数!!
因此,就像标题中所说的那样,我正在尝试使用var args = GameWonFragmentArgs.fromBundle(arguments!!)
根据我要遵循的文档从捆绑中检索传递的参数。
但是Android Studio建议使用以下代码:
var args = GameWonFragmentArgs.fromBundle(requireArguments())
我查阅了Fragment的Android文档,发现requireArguments()
返回了@NonNull Bundle或IllegalStateException。为什么Android Studio建议使用它,两者之间有什么区别?
此外,我找不到与fromBundle()
相关的文档。
解决方法
androidx.fragment:fragment中有一些api更改
requireArguments() ---返回@NonNull捆绑包或引发IllegalStateException的方法。
fromBundle(arguments !!)---这些情况下,App可能由于Null指针异常而崩溃。如果参数为null,则应用程序将崩溃。
,根据 UseRequireInsteadOfGet
Lint 警告:
AndroidX 添加了常见的“get___()”API 的新“require____()”版本,例如 getContext/getActivity/getArguments/等。使用这些 API 将允许底层组件尝试告诉您为什么它为空,而不是将它们包装在诸如 requireNotNull() 之类的东西中,从而产生更好的错误消息。
重要的是,错误消息总是提到哪个片段导致了问题,包括片段的类名及其唯一 ID。这在将该 ID 与 Fragment's debug logging 相关联时特别有用,从而让您了解该 Fragment 是何时首次添加或更新的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。