在我的Java课程中,我想要使用来自strings.xml的字符串资源。
为此,我想要使用类似于以下代码:
如果我的类是一个活动(Activity),那么它可以工作。 但是如果我的类只是一个简单的Java类,我该如何使用它呢?
为此,我想要使用类似于以下代码:
getString(R.string.address)
如果我的类是一个活动(Activity),那么它可以工作。 但是如果我的类只是一个简单的Java类,我该如何使用它呢?
getString(R.string.address)
一个类没有上下文,如果要使用字符串资源,则需要一个上下文。因此,只需从活动中调用类并提供参数context
,在您的类构造函数中使用该上下文获取字符串资源。
在自定义类中,您需要导入项目的R命名空间以获取资源ID。
import com.myrandomapp.R;
那么要获取实际的字符串
context.getString(R.string.COOL_STRING)
您可以将Activity类的上下文传递给Java类并访问资源.
来自您的Activity类
Helper helper = new Helper(this);
您的Java类
public class Helper {
Helper(Context c){
c.getString(R.string.address);
}
}
Application
类中创建一个静态的 Application Context
。public class App extends Application{
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
public static Context getContext(){
return mContext;
}
}
然后,您只需要调用 App.getContext().getResources()
方法即可获取任何资源值。
请记住,这个 Context
是 Application
类型的,所以有些情况下这个 Context
不适合使用。要了解更多信息,请阅读 此文。
如果您添加了这行代码,您就可以完成了:
// this is the object itself, and idString is the ID String bound to the literal.
this.getString(R.string.idString)
希望这个评论对你有所帮助!
敬礼。