【问题标题】:Get a string resource from "values" folder in Android从 Android 的“values”文件夹中获取字符串资源
【发布时间】:2021-04-04 03:41:30
【问题描述】:

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

考虑到它应该独立于应用程序语言,我没有将字符串放在任何不同语言的 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>

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

这是错误的做法吗?如果是,那么我该如何实现上述解释的场景?

【问题讨论】:

  • 据我所知,这应该可行。你试过了吗?
  • 如果只是一个字符串,您可以将其存储在您的首选项中,然后在任何您想要的地方检索它。
  • 我尝试了不同的方法,例如编写 String test = getString...但 Android Studio 将 getString 标记为红色。我该怎么称呼它?
  • 你能把代码贴在你想得到它的地方吗?
  • @Haresh,是的,上下文可能是问题所在,课程只是 public class testString 没有别的

标签: java android resources string.xml


【解决方案1】:

要访问字符串,您可以按照 Berat 在他的回答中所说的那样进行操作。从使用 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);

Activity 是指扩展 Activity 或 AppCompatActivity(或在某个级别上扩展的类)

【讨论】:

  • 谢谢,我会试试的,我几乎可以肯定Context 是这里的问题
猜你喜欢
  • 1970-01-01
  • 2011-05-24
  • 2018-03-23
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 2015-03-03
  • 2016-08-06
  • 1970-01-01
相关资源
最近更新 更多