在我的Java类中,我想使用strings.xml中的字符串资源。为此,我想使用这样的方法:
getString(R.string.address)
如果我的课是一个活动,那么它的工作。但是如果我的类是一个简单的Java类,我该如何使用它呢?
xlpyo6sf1#
类没有上下文,而要使用字符串资源,则需要一个上下文。因此,只需从Activity调用该类,并给予一个参数context,然后在类构造函数中使用该上下文来获取字符串资源。在定制类中,需要导入项目的R命名空间以获取资源ID。
context
import com.myrandomapp.R;
然后得到实际的字符串
context.getString(R.string.COOL_STRING)
4xrmg8kj2#
您可以将Activity类的上下文传递给Java类并访问资源。从您的活动课
Helper helper = new Helper(this);
您的Java类
public class Helper { Helper(Context c){ c.getString(R.string.address); } }
klr1opcd3#
您可以在自定义Application类中创建静态Application Context
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了解进一步的信息。
App.getContext().getResources()
Context
dfty9e194#
如果添加这一行,就可以完成:
// this is the object itself, and idString is the ID String bound to the literal. this.getString(R.string.idString)
希望这篇评论对你有帮助!布瑞斯
4条答案
按热度按时间xlpyo6sf1#
类没有上下文,而要使用字符串资源,则需要一个上下文。因此,只需从Activity调用该类,并给予一个参数
context
,然后在类构造函数中使用该上下文来获取字符串资源。在定制类中,需要导入项目的R命名空间以获取资源ID。
然后得到实际的字符串
4xrmg8kj2#
您可以将Activity类的上下文传递给Java类并访问资源。
从您的活动课
您的Java类
klr1opcd3#
您可以在自定义
Application
类中创建静态Application Context
然后只需调用
App.getContext().getResources()
来获取任何资源值。只要记住这个
Context
是Application
类型,所以有些东西这个Context
不好用。阅读this了解进一步的信息。dfty9e194#
如果添加这一行,就可以完成:
希望这篇评论对你有帮助!
布瑞斯