我有一个需要在应用程序上使用的默认字符串,无论语言如何。
认为它应该独立于应用程序语言我没有将字符串放在任何string.xml
文件中用于不同的语言。相反,我在myString.xml
文件夹中创建了另一个values
文件,如下所示:
myString.xml
<resources>
<string name="myStringResource">This text shall be available
for the entire app no matter the language
</string>
</resources>
但现在我无法访问此字符串。
这样做是错误的吗?如果是,那么我怎样才能实现上述情况呢?
答案 0 :(得分:6)
要访问Strings,就像Berat在答案中所说的那样。从使用ID(R.string.resName
)的代码和使用@string注释的XML:@string/resName
获取字符串。
但是,当您使用代码(例如Java)时,您不能只使用该ID。您还必须使用Context.getString(R.string.resName);
来获取实际的String。因此,如果您想从代码中访问String并将其作为变量获取,请执行以下操作:
String res = context.getString(R.string.myStringResource);
我写context
因为它是Context中的一个类。但是,您也可以使用Activity实例来获取String。如果您在活动中编写代码,则只需编写String res = getString(R.string.myStringResource);
即可。
活动意味着扩展Activity或AppCompatActivity(或在某个级别扩展的类)