Android 从没有活动的类中访问资源字符串
我在strings.xml中定义了所有文本名称/标签 我发现Android 从没有活动的类中访问资源字符串,android,Android,我在strings.xml中定义了所有文本名称/标签 我发现R.string。返回字符串的ID参考号。如何让它返回实际字符串 public class ResultsFileFormat{ public void getAllMeasData(){ System.out.println(" *** STRING ****" + (R.string.date)); // File text format System.o
R.string。
返回字符串的ID参考号。如何让它返回实际字符串
public class ResultsFileFormat{
public void getAllMeasData(){
System.out.println(" *** STRING ****" + (R.string.date));
// File text format
System.out.println(
R.string.file_name + fileName + "\n" +
R.string.date + date + "\n\n" +
R.string.cal_table_sn + calTableSn + "\n" +
R.string.cal_table_date + calDate + "\n" +
R.string.cal_temp + calTemp + " C" + "\n" +
R.string.ref_gauge + tableGaugeRef + "\n\n" +
R.string.gauge_val_min + gauge.minGauge + " " + tableGaugeMin + " (C)" + "\n" +
R.string.gauge_val_max + gauge.maxGauge + " " + tableGaugeMax + " (C)" + "\n" +
R.string.groove_val_min + groove.minGroove + " " + tableGrooveMin + " (C)" + "\n" +
R.string.groove_val_max + groove.maxGroove + " " + tableGrooveMax + " (C)" + "\n" +
R.string.xl_min_pos + crossLevelPos.xlPosLow + " " + xlLow + " (C)" + "\n" +
R.string.xl_max_pos + crossLevelPos.xlPosHigh + " " + xlHigh + " (C)" + "\n" +
R.string.xl_min_neg + crossLevelNeg.xlNegLow + " " + xlLow + " (C)" + "\n" +
R.string.xl_max_neg + crossLevelNeg.xlNegHigh + " " + xlHigh + " (C)" + "\n" );
}
}
您可以使用属于上下文类的getResource方法
String filename=getResources().getString(R.String.file\u name)
System.out.println(文件名) R.string.file\u name将为您提供R.java文件中该项的id引用。如果你想得到实际的字符串,你需要像这样调用
context.getResources().getString(R.string.file\u name)代码>。由于您是从一个不扩展活动的类调用的,因此必须传递上下文或获取应用程序上下文。使用构造函数传递上下文。所以最终的代码看起来像
private Context context = null;
public ResultsFileFormat(Context context){
this.context = context;
}
为了获得资源
String fileName=context.getResources().getString(R.String.file\u name)代码>
我没有运行此代码,请尝试告诉我。您需要上下文的实例
,您可以使用该实例调用getResources().getString(R.string.)
使用其中一个
Context context=getApplicationContext();
context.getResources().getString(R.string.<name>)
Context-Context=getApplicationContext();
context.getResources().getString(R.string.)
或者将Context
实例或活动实例(getActivity()
或this
)传递给java类构造函数,并使用它调用getResources()方法。感谢您的评论。当我尝试你的建议时,“getString”未被识别,并以红色突出显示。这很好。。。“ResultsFileFormat”现在不显示任何错误。如果我想从主活动调用此函数,那么如何将上下文传递给该函数。。与上下文概念有点纠结。。。我希望你能从main活动中实例化类ResultsFileFormat
。如果是这样,您可以通过构造函数传递上下文。比如说,您的类ResultsFileFormat
,具有如下所示的构造函数或创建如下所示的构造函数public ResultsFileFormat(Context Context){this.Context=Context;}
,然后在main活动中实例化类时,执行以下操作,ResultsFileFormat ResultsFileFormat=new ResultsFileFormat(this)
此处此
表示主要活动的上下文。感谢您的帮助,非常感谢。我现在可以访问独立类中的资源字符串。