在xml中获取strings.xml的值非常简单,有些情况下我们需要在java代码中获取strings.xml中的字符串的值。尽量将字符串定义在strings.xml是一种非常好的习惯,可以使以后的维护变得方便快捷,同时也避免了程序代码中充斥着过多写死的字符串常量的情况,使程序更加简洁干练。
在Activity的子类中获取string.xml的值方法如下:
String value = this.getString(R.string.XXX);
//或者是:
String value=this.getResources().getString(R.string.XXX);
如果在其他普通java类【未继承Activity的类】中,则要注意,先声明一个Context对象context或者Application类的对象application,
然后:
String value = context.getString(R.string.XXX);
//或者
String value = application.getString(R.string.XXX);
有些情况下因为java类与Activity的子类不在同一个包中,所以R.string.XXX会报错,这时需要引入继承了Activity的类所在的包。
例如:
String privateLocation =context.getResources().getString(
com.wang.Activity.R.string.privateDataStoreLocationFileName);
String commLocation=application.getResources().getString(
com.wang.Activity.R.string.commDataStoreLocationFileName);
往往第二种情况比较常见,所以记住如果是在其他没有继承Activity或者位于其他包中的普通java类中引用strings.xml中字符串的值,就需要采取
context.getResources().getString(Activity所在的包.R.string.XXX) 或者
application.getResources().getString(Activity所在的包.R.string.XXX)的方法
来获取。