首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓getString方法

安卓getString方法
EN

Stack Overflow用户
提问于 2016-01-13 10:04:11
回答 3查看 2K关注 0票数 0

我试图使用以下代码将设置为string.xml的字符串值与日期连接起来:

代码语言:javascript
复制
holder.time.setText(date.getHours()+" " + getString(R.string.ore));

但我收错了:解决不了办法。我已经尝试过这样的代码:

代码语言:javascript
复制
holder.time.setText(date.getHours()+" " +R.string.ore);

工作,但值R.string.ore被检索为int值而不是字符串,但我需要一个字符串值,我需要通过string.xml使用该值,而不是使用简单的字符串示例"ore“。

有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-13 10:05:52

如果您处于activity的上下文中,请使用以下内容:

代码语言:javascript
复制
getResources().getString(R.string.ore);

如果您处于fragment的上下文中,请使用以下内容:

代码语言:javascript
复制
getActivity().getResources().getString(R.string.ore);

如果您在adapter中,则需要通过适配器的构造函数将容器活动的上下文传递给它。

代码语言:javascript
复制
// When creating the adapter, pass the activity's context
// keeping in mind the notes above
YourAdapter adapter = new YourAdapter(this, ...);

并从适配器内部:

代码语言:javascript
复制
private Context mContext; // A member variable of the adapter class

public YourAdapter(Context context, ...) {
    mContext = context;
}

然后,您可以通过这种方式获得字符串资源:

代码语言:javascript
复制
mContext.getResources().getString(R.string.ore);
票数 3
EN

Stack Overflow用户

发布于 2016-01-13 10:07:23

getStringContext的一种方法。如果不能解决这个问题,就意味着您的类不是Context的子类。你可以用

代码语言:javascript
复制
holder.time.getContext()

要检索Context,您过去常常膨胀该TextView并访问getString()。Eg holder.time.getContext().getString(R.string.hour)

票数 2
EN

Stack Overflow用户

发布于 2016-01-13 10:13:34

尝尝这个,

代码语言:javascript
复制
Calendar calendar = Calendar.getInstance();
holder.time.setText(calendar.get(Calendar.HOUR)+" " +getString(R.string.ore));

这可能对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34763660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档