Android. 获取非Activity类的字符串资源

4

我有一个字符串资源:

strings.xml
<resources>
    <string name="myString">stringName</string>
</resources>

如何从非活动类中获取字符串?

我无法使用 getResources().getString(R.string.myString)

来实现。


2
https://dev59.com/n2855IYBdhLWcg3wXC5-#4391811 - Prerak Sola
1个回答

14

你需要使用上下文引用来访问资源。 我建议扩展Application类并创建一个应用程序单例,然后调用:

MyApplication.getInstance().getString(R.string.myString);

或将其注入您选择的类中。

这种方法的问题在于,它会使您的类更难进行测试,因为现在它使用了Android上下文。我建议通过构造函数或首选方法将字符串作为依赖项传递到非activity类中。

public MyClass(String string){
}

这在运行时更改区域设置无效。 - DJphy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接