问题描述
在编写代码时,我发现可以通过在两个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
对象使用。