【问题标题】:Is accessing application resources via the Resource class same as accessing via the context?通过 Resource 类访问应用程序资源是否与通过上下文访问相同?
【发布时间】:2020-08-13 11:31:51
【问题描述】:

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

val string = context.getString(...)

context.resources

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

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

【问题讨论】:

    标签: android android-resources android-context


    【解决方案1】:

    哪种方法是正确的?

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

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

    (来自the source code

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

    为什么是这两种方式?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-23
      • 2018-03-26
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多