Android系统.获取非活动类的字符串资源

San*_*Gil 2 android android-activity android-resources

我有一个String资源:

strings.xml
<resources>
    <string name="myString">stringName</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

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

我做不到 getResources().getString(R.string.myString)

小智 10

您必须使用Context的引用来访问资源.我建议扩展Application类并创建一个Application Singleton,然后调用:

MyApplication.getInstance().getString(R.string.myString);
Run Code Online (Sandbox Code Playgroud)

或者将它注入您选择的课程中.

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

public MyClass(String string){
}
Run Code Online (Sandbox Code Playgroud)