java - 从 Android 中的 "values"文件夹获取字符串资源

标签 java android resources string.xml

无论语言如何,我都有一个需要在应用程序上使用的默认字符串。

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

但现在我无法访问这个字符串。

这是错误的方法吗?如果是,那么我怎样才能实现上述解释的场景?

最佳答案

要访问字符串,您可以按照 Berat 在他的回答中所说的那样进行操作。来自使用 ID (R.string.resName) 的代码和使用 @string 注释的 XML:@string/resName获取字符串。

但是,当您使用代码(例如 Java)时,您不能只使用 ID。您还必须使用 Context.getString(R.string.resName);获取实际的字符串。因此,如果您想从代码中访问 String 并将其作为变量获取,请执行以下操作:

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

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

Activity 意味着扩展 Activity 或 AppCompatActivity (或在某个级别上扩展的类)

关于java - 从 Android 中的 "values"文件夹获取字符串资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46214345/

相关文章:

android - 当您的设备进入休眠状态时,Android 是否停止了您的线程

.net - 如何对 . .NET 中的 resx(资源文件)

java - Swagger includePatterns()

java - 无法在对象数组中保存整数

android - flutter 的 Image.network 无法在发布 apk 上运行

android - 支持 Fragment 弹出动画不工作

android:引用自定义xml中的资源

android - Eclipse/ADT 给出数百个错误 "resource entry is already defined"

Java StreamTokenizer 在 @ 符号处拆分电子邮件地址

java - 相同的代码块执行时长不同