Android 从没有活动的类中访问资源字符串

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

我在strings.xml中定义了所有文本名称/标签

我发现
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)
此处
表示主要活动的上下文。感谢您的帮助,非常感谢。我现在可以访问独立类中的资源字符串。