【问题标题】:Constants in Android xml fileAndroid xml 文件中的常量
【发布时间】:2014-03-10 03:27:45
【问题描述】:

我的 Android 设置 xml 文件 (res/xml/settings.xml) 中有一些类似的代码:

    <EditTextPreference
            android:title="@string/settings_date_format"
            android:summary="@string/settings_date_format_summary"
            android:key="settingsDateFormat"
            android:defaultValue="@string/config_settings_date_format_default_value" />

还有这样的字符串:

<string name="config_settings_date_format_default_value">dd MMM yyyy, HH:mm</string>

如您所见,我将默认值设置为字符串。但是,我希望将这些默认值存储在其他地方,因为将它们放在 res/values/strings.xml 中没有意义

我可以将它们放在一个名为“config.xml”的新文件中吗?

【问题讨论】:

  • 为什么放在strings.xml中没有意义?
  • 我将所有面向用户的字符串放在该文件中,他们将在屏幕上看到这些内容。而配置设置是他们不必担心的背景事情。例如,假设我有一个以毫秒为单位的超时配置设置...如果用户看到它应该以分钟为单位,因此将此类内容与面向用户的字符串进行分组是没有意义的。
  • 我明白了,但用户不知道stings.xml。用户甚至不知道您的应用程序是如何制作的。但简而言之,您可以拥有任意数量的带有字符串资源的 xmls 文件。如何组织信息由您决定。
  • 感谢 Merlevede。从开发人员的角度来看,如果我们定期更改默认配置值,将其放入自己的配置文件中会更容易。如何创建 settings.xml 可以读取的新字符串资源 xml 文件?

标签: android xml string


【解决方案1】:

您可以在 values 文件夹中添加另一个 XML 文件,然后随意命名。

在编译时,编译器将扫描您的所有资源文件夹,无论文件及其名称如何,并为您的所有资源创建一个查找表。

【讨论】:

  • 即使我移动了 config.xml 中的字符串,我还需要用@string/my_string_name 调用它吗?或者它可能是@config/my_string_name?有什么办法可以让它专门使用@config
【解决方案2】:

您可以拥有多个包含字符串常量的文件。您只需遵守文件命名规则并确保不要重复任何字符串或文件名。

【讨论】:

  • 所以如果我在与strings.xml 相同的目录中创建config.xml,我可以通过@config/my_string_name 在settings.xml 中引用它?
  • 不,你总是使用@string/my_string_namestring 关键字指定资源是一个字符串,编译器将解析并搜索你所有的字符串文件,直到找到my_string_name
  • Merlevede 是正确的。您可以以不同的方式命名文件,但字符串本身仍需要定义为 元素。
猜你喜欢
  • 2015-05-23
  • 1970-01-01
  • 2021-05-31
  • 2012-12-21
  • 1970-01-01
  • 2018-06-14
  • 2011-02-03
  • 2011-01-08
  • 2011-09-16
相关资源
最近更新 更多