通过Resource类访问应用程序资源是否与通过上下文访问相同?

问题描述

在编写代码时,我发现可以通过在两个getString()上调用context函数来访问字符串资源

val string = context.getString(...)

context.resources

val string = context.resources.getString(...)

哪种方法是正确的?为什么两种方式?

解决方法

哪种方法是正确的?

都可以。 getString()的实现是:

    @NonNull
    public final String getString(@StringRes int resId) {
        return getResources().getString(resId);
    }

(来自the source code

所以,他们俩都做同样的事情。

为什么有两种方式?

getString()经常使用。大概是他们在Context中添加了一个辅助方法,以简化对字符串资源的访问。但是,尽管它们针对几种资源类型执行此操作,但许多其他类型只能通过完整的Resources对象使用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...