首页 > 解决方案 > 通过 Resource 类访问应用程序资源是否与通过上下文访问相同?

问题描述

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

val string = context.getString(...)

context.resources

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

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

标签: androidandroid-resourcesandroid-context

解决方案


哪种方法是正确的?

哪一个都好。的实现getString()是:

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

(来自源代码

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

为什么是这两种方式?

getString()被大量使用。据推测,他们添加了一个辅助方法Context来简化对字符串资源的访问。然而,虽然他们对几种资源类型执行此操作,但许多其他资源类型只能通过完整Resources对象获得。


推荐阅读