通过 Resource class 访问应用程序资源是否与通过上下文访问相同?
Is accessing application resources via the Resource class same as accessing via the context?
在编写代码时,我发现我可以通过在 context
上调用 getString()
函数来访问字符串资源
val string = context.getString(...)
和context.resources
val string = context.resources.getString(...)
哪种方法正确?为什么是这两种方式?
Which is the right way to do it?
两者都可以。 getString()
的实现是:
@NonNull
public final String getString(@StringRes int resId) {
return getResources().getString(resId);
}
(来自 the source code)
所以,他们都做同样的事情。
Why the two ways?
getString()
用得很多。据推测,他们向 Context
添加了一个辅助方法以简化对字符串资源的访问。然而,虽然他们对几种资源类型这样做,但许多其他资源类型只能通过完整的 Resources
对象获得。
在编写代码时,我发现我可以通过在 context
getString()
函数来访问字符串资源
val string = context.getString(...)
和context.resources
val string = context.resources.getString(...)
哪种方法正确?为什么是这两种方式?
Which is the right way to do it?
两者都可以。 getString()
的实现是:
@NonNull
public final String getString(@StringRes int resId) {
return getResources().getString(resId);
}
(来自 the source code)
所以,他们都做同样的事情。
Why the two ways?
getString()
用得很多。据推测,他们向 Context
添加了一个辅助方法以简化对字符串资源的访问。然而,虽然他们对几种资源类型这样做,但许多其他资源类型只能通过完整的 Resources
对象获得。