【问题标题】:Organizing Strings.xml组织 Strings.xml
【发布时间】:2011-01-04 18:50:48
【问题描述】:

我正在制作一个 android 应用程序,因为我刚刚开始,所以我想尝试获得最有条理的代码/资源。到目前为止,在我的 strings.xml 文件中,我有这个:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">GameController</string>
<string name="stop">Stop</string>
<string name="start">Start</string>
<string name="preferences">Preferences</string>
<string name="back">Back</string>
</resources>

除了 app_name 之外的所有字符串都在选项菜单中使用。但由于我将添加更多字符串,所以我认为这样做可能会更好:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">GameController</string>
<string name="menu_stop">Stop</string>
<string name="menu_start">Start</string>
<string name="menu_preferences">Preferences</string>
<string name="menu_back">Back</string>
</resources>

这是最好的方法还是我应该使用其他系统?

【问题讨论】:

    标签: android xml string organization


    【解决方案1】:

    这取决于字符串的使用位置。如果“stop”永远不会在菜单中的任何地方使用,那么将其称为“menu_stop”是个好主意。如果它会被到处使用,那么它应该被称为“停止”。

    此外,XML cmets 对于组织资源非常有用。

    <resources>
        <string name="app_name">GameController</string>
    
        <!-- Menu Strings -->
        <string name="menu_stop">Stop</string>
        <string name="menu_start">Start</string>
        <string name="menu_preferences">Preferences</string>
        <string name="menu_back">Back</string>
    </resources>
    

    最后,如果您发现您拥有大量的字符串资源,您可能希望将它们分成不同的 xml 文件:menu_strings.xml、dialog_strings.xml 等。

    menu_strings.xml

    <resources>
        <!-- Menu Strings -->
        <string name="menu_stop">Stop</string>
        <string name="menu_start">Start</string>
        <string name="menu_preferences">Preferences</string>
        <string name="menu_back">Back</string>
    </resources>
    

    dialog_strings.xml

    <resources>
        <string name="dialog_cancel_yes">Yes, cancel.</string>
        <string name="dialog_cancel_no">No, do not cancel.</string>
    </resources>
    

    【讨论】:

    • 其中一些会被使用几次,但如果我有 menu_stop 和 preferences_stop 那么我可以更改其中一个而不影响另一个。
    • 这些文件必须在同一个/values文件夹中?或者我可以添加一个新文件夹来组织这些文件?比如/values/dialog_strings
    • Android 使用 /res 下的子文件夹来确定每个资源所属的设备配置。老实说,我不确定它会如何应对低于此水平的更深层次。使用 HelloWorld 应用程序进行测试应该非常容易。
    【解决方案2】:

    这是一个主观的问题,真的。你应该使用任何你觉得更容易处理的东西。当我使用布局和可绘制对象(例如 button_x、ninepatch_x、icon_x 等)时,我当然会使用第二种命名方式,因为它使它们彼此相邻,并且使用 Content Assist 更容易快速缩小范围。在 XML 中,您可以使用 cmets 将它们组合在一起,并添加空格,只要是让您更容易快速地找到所需内容的任何东西。

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2015-08-14
      • 1970-01-01
      相关资源
      最近更新 更多