在我的java类中,我想使用strings.xml中的字符串资源。android如何在java类中使用字符串资源
的,我必须使用像下面,
getString(R.string.address)
如果我的类是一个活动,则其服用。但是我的类是一个简单的java类,我该如何使用它?
可能吗? 谢谢
在我的java类中,我想使用strings.xml中的字符串资源。android如何在java类中使用字符串资源
的,我必须使用像下面,
getString(R.string.address)
如果我的类是一个活动,则其服用。但是我的类是一个简单的java类,我该如何使用它?
可能吗? 谢谢
类没有上下文,并使用字符串资源需要一个背景。所以,只需从一个活动中调用该类并给出参数context
并在您的类构造函数中使用该上下文来获取字符串资源。
在您的自定义类中,您需要导入项目的R名称空间以获取资源ID。
import com.myrandomapp.R;
然后获得实际的字符串
context.getString(R.string.COOL_STRING)
此答案不完整 - 要为仍然有问题的人完成,您需要导入项目的R名称空间以获取资源ID。例如)import com.myappdomain.R(在这里使用你的名词空间) 然后获取实际的字符串 context.getString(R.string.SOME_STRING) –
@AndroidAddict +1对你来说,你让我头疼! – Mirko
@AndroidAddict +1。你应该编辑答案 – Br0thazS0ul
您可以将Activity类的上下文传递给java类并访问资源。
从你的活动课
Helper helper = new Helper(this);
你的Java类
public class Helper {
Helper(Context c){
c.getString(R.string.address);
}
}
您可以创建自定义静态Application Context
Application
类
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了解更多信息。
,如果你加入这一行你可以做:
// this is the object itself, and idString is the ID String bound to the literal.
this.getString(R.string.idString)
我希望此评论可以帮助你!
Brs。
如果您的项目是一个Android项目。无限期地,您可以使用它。试过了吗?尝试使用它,然后告诉我们。 –
当你接受你所做的答案时,我很好奇你的逻辑是什么。 –
+1(还剩12个) – MKJParekh