从 Android 中的 "values" 文件夹获取字符串资源
Get a string resource from "values" folder in Android
我有一个需要在应用程序上使用的默认字符串,无论是哪种语言。
考虑到它应该独立于应用程序语言,我没有将字符串放入不同语言的任何 string.xml
文件中。相反,我在 values
文件夹中创建了另一个 myString.xml
文件,看起来像这样:
myString.xml
<resources>
<string name="myStringResource">This text shall be available
for the entire app no matter the language
</string>
</resources>
但是现在我无法访问这个字符串。
这样做的方法不对吗?如果是,那么我怎样才能实现上面解释的场景?
要访问字符串,您可以按照 Berat 在他的回答中所说的进行操作。从使用 ID (R.string.resName
) 和 XML 的代码中使用 @string 注释:@string/resName
获取字符串。
但是,当您使用代码时(例如 Java),您不能只使用 ID。您还必须使用 Context.getString(R.string.resName);
来获取实际的字符串。因此,如果您想从代码中访问字符串并将其作为变量获取,您可以这样做:
String res = context.getString(R.string.myStringResource);
我写context
是因为它在上下文中是class。但是,您也可以使用 Activity 实例来获取字符串。如果你在 activity 中编写代码,你可以只写 String res = getString(R.string.myStringResource);
。
Activity 表示扩展 Activity 或 AppCompatActivity(或在某种程度上扩展的 class)
我有一个需要在应用程序上使用的默认字符串,无论是哪种语言。
考虑到它应该独立于应用程序语言,我没有将字符串放入不同语言的任何 string.xml
文件中。相反,我在 values
文件夹中创建了另一个 myString.xml
文件,看起来像这样:
myString.xml
<resources>
<string name="myStringResource">This text shall be available
for the entire app no matter the language
</string>
</resources>
但是现在我无法访问这个字符串。
这样做的方法不对吗?如果是,那么我怎样才能实现上面解释的场景?
要访问字符串,您可以按照 Berat 在他的回答中所说的进行操作。从使用 ID (R.string.resName
) 和 XML 的代码中使用 @string 注释:@string/resName
获取字符串。
但是,当您使用代码时(例如 Java),您不能只使用 ID。您还必须使用 Context.getString(R.string.resName);
来获取实际的字符串。因此,如果您想从代码中访问字符串并将其作为变量获取,您可以这样做:
String res = context.getString(R.string.myStringResource);
我写context
是因为它在上下文中是class。但是,您也可以使用 Activity 实例来获取字符串。如果你在 activity 中编写代码,你可以只写 String res = getString(R.string.myStringResource);
。
Activity 表示扩展 Activity 或 AppCompatActivity(或在某种程度上扩展的 class)