我试图使用以下代码将设置为string.xml的字符串值与日期连接起来:
holder.time.setText(date.getHours()+" " + getString(R.string.ore));但我收错了:解决不了办法。我已经尝试过这样的代码:
holder.time.setText(date.getHours()+" " +R.string.ore);工作,但值R.string.ore被检索为int值而不是字符串,但我需要一个字符串值,我需要通过string.xml使用该值,而不是使用简单的字符串示例"ore“。
有什么帮助吗?
发布于 2016-01-13 10:05:52
如果您处于activity的上下文中,请使用以下内容:
getResources().getString(R.string.ore);如果您处于fragment的上下文中,请使用以下内容:
getActivity().getResources().getString(R.string.ore);如果您在adapter中,则需要通过适配器的构造函数将容器活动的上下文传递给它。
// When creating the adapter, pass the activity's context
// keeping in mind the notes above
YourAdapter adapter = new YourAdapter(this, ...);并从适配器内部:
private Context mContext; // A member variable of the adapter class
public YourAdapter(Context context, ...) {
mContext = context;
}然后,您可以通过这种方式获得字符串资源:
mContext.getResources().getString(R.string.ore);发布于 2016-01-13 10:07:23
getString是Context的一种方法。如果不能解决这个问题,就意味着您的类不是Context的子类。你可以用
holder.time.getContext()要检索Context,您过去常常膨胀该TextView并访问getString()。Eg holder.time.getContext().getString(R.string.hour)
发布于 2016-01-13 10:13:34
尝尝这个,
Calendar calendar = Calendar.getInstance();
holder.time.setText(calendar.get(Calendar.HOUR)+" " +getString(R.string.ore));这可能对你有帮助。
https://stackoverflow.com/questions/34763660
复制相似问题