2017-09-14 74 views
0

我有一个默认字符串,需要在应用程序上使用,不管语言如何。从Android的“值”文件夹获取字符串资源

认为它应该是独立于应用程序的语言我没有把字符串放在任何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

据我所知,这应该工作。你试过了吗? – 0xDEADC0DE

+1

如果只是一个字符串,您可以将其存储在您的偏好设置中,然后在任何需要的位置进行检索。 – Aradhna

+0

我尝试了不同的东西,比如编写例如'String test = getString ...',但Android Studio将getString标记为红色。我应该怎样称呼它? – codeKiller

回答

4

要访问字符串,你可以像培拉特在他的回答中说的那样做。从使用ID(R.string.resName)的代码和使用@string注释的XML:@string/resName获取字符串。

但是,当您使用代码(例如Java)时,您不能只使用该ID。您还必须使用Context.getString(R.string.resName);来获取实际的字符串。所以,如果你想从代码访问字符串,并把它作为一个变量,你这样做:

String res = context.getString(R.string.myStringResource); 

我写context,因为它是在上下文中的一类。但是,您也可以使用Activity实例来获取字符串。如果你正在编写一个活动的代码,你可以写String res = getString(R.string.myStringResource);

活动意味着要么扩展活动或AppCompatActivity(或在某个级别上扩展的类)

+0

谢谢,我会试试,我几乎可以肯定'Context'就是这里的问题 – codeKiller

+0

是的,'Context'问题,现在解决了,谢谢! – codeKiller

相关问题