- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很长一段时间以来我一直有这个疑问,当我使用 android fragment 并且我需要实例化一个上下文时,或者我需要将一个上下文作为其他函数的参数传递时,我可以选择在 getContext() 之间使用和 requireContext() 方法来实现这一点,我通常更喜欢使用 requireContext(),但这只是因为 IDE(Android Studio) 有时在我使用 getContext() 时会显示警告。但使用一种或其他方法的结果似乎是同样,无论我选择什么。
我的问题是,这两种方法有什么区别吗?如果是这种情况,哪个更好,或者我应该在每种情况下使用哪个?
最佳答案
getContext()
返回一个可为空的 Context
.requireContext()
返回非空值 Context
,或在不可用时引发异常。
如果您的代码处于生命周期阶段,您知道 fragment 已附加到上下文,只需使用 requireContext()
获取 Context
并让静态分析器对潜在的 NPE 问题感到满意。
如果您的代码超出常规 fragment 生命周期(例如异步回调),您最好使用 getContext()
,自己检查它的返回值,只有在它为非空时才继续使用它。
明确的可空性在 Kotlin 中更为重要,因为它内置于语言的类型系统中。
关于android - 使用 fragment 时 getContext() 和 requireContext() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60402490/
我开始学习WebGL,因为我找到了一些旧教程,我不知道在2014年什么是正确的方法? 我启动了 (基本),并且在教程中他们说了类似的话: use getContext('2d') and if yo
我的 fragment 中多次需要上下文: ... account.restore(getContext()); ... dbHelper = new DBHelper
尝试根据 Youtube 上的教程创建 HTML5 Canvas 时钟时。我按照说明进行了整个演示,但无法在自己的浏览器(Safari 8.0.7 和 FireFox 39.0.3)上查看时钟,它显示
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceS
我是 android/java 编程新手,遇到错误,提示无法解析符号getContext,我正在尝试从我的应用程序获取图片以保存到手机主要外部存储上的照片库。如果有人可以帮助我解决这个错误,我将非常感
我是 android/java 编程新手,并且遇到错误,提示符号 getContext 无法解析。该系统以Activity启动,有两个fragment。第一个是显示 Rest Api 的按钮。请帮忙
typedef struct _ut_slot { ucontext_t uc; .... }*ut_slot; static ut_slot* table; //array of t
我有扩展 recyclerview.adapter 的适配器类,我需要在此类中使用以下代码,但它在“this”上有错误。 public void addItems(int howMany){
我正在使用常规 JS(我知道这不是最好的,但我是初学者) 所以我正在为 Canvas 项目编写代码。然而,当使用 getContext() 函数时,JS 控制台会显示 Uncaught TypeErr
我知道使用上述 API 对于普通的基于 x86 的桌面系统是安全的,但对于使用 ARM 或 MIP 的嵌入式系统,某些不常用的 API 可能会得到较少的支持或错误的实现。在一个程序中包含这样的高级 A
所以我一直在官方网站上接受 Android 开发人员培训,他们希望我们最终实例化我们的数据库。 所以他们告诉我们使用这段代码: FeedReaderDbHelper mDbHelper = new F
在我的 Android 应用程序中,我正在使用标准的 Android 登录模板构建登录屏幕。在此代码模板中, Activity 中有一个名为 UserLoginTask 的类。如果用户成功登录,我想将
我正在使用 Canvas 制作一个基本的 Web 应用程序,它会在窗口调整大小时动态更改 Canvas 大小。我已经让它静态地工作,没有任何缺陷,但是当我创建一个对象使其动态地工作时,它会抛出一个错误
在 AndroidX 中, InstrumentationRegistry 现在已被弃用。 documentation状态 This method is deprecated. In most sce
我正在尝试在Spring Boot应用程序中使用Spring Security添加Facebook授权。目前,我的问题是从Principal提取数据。 这是我的安全配置: public class S
我正在尝试获取 Canvas 的上下文,显然我收到错误Uncaught TypeError: Cannot call method 'getContext' of null 显然我在它初始化之前就得到
我是Kotlin Coroutines的新手,我想以异步方式为我的每位员工调用API。但是我遇到了一个问题,即新协程的存在,我无法从SecurityContextHolder.getContext检索
最近我将 struts2 版本从 2.0.11 更新到了当前的 2.2.3。不幸的是,我现在遇到了一些奇怪的问题,到目前为止我还无法解决。 当我尝试获取 ActionContext 时: Action
我想要一个 ActorFactory 类,如下所示 public class SampleActorFactory { // Simple create method public creat
我尝试对用户进行身份验证(它有效)并从上下文中获取用户 token ,但它不起作用。 我有一个简单的微服务应用程序作为我的宠物项目,并使用 WebFlux 作为网络框架。我尝试调试 ReactiveS
我是一名优秀的程序员,十分优秀!