【问题标题】:Use Java constants in arrays defined by XML在 XML 定义的数组中使用 Java 常量
【发布时间】:2011-06-09 15:08:12
【问题描述】:

我有一个这样的数组,它定义了 ListPreference 的条目值:

<string-array name="sortSelectionEntryValues">
<item>0</item>
<item>1</item> 
</string-array>

现在我不想在 XML 中使用 0 和 1,而是想使用 Java 常量,例如ORDER_ASC 和 ORDER_DESC,因为稍后我将以编程方式访问所选 ListPreference 条目的值,并且我必须检查代码中的值,但是将值与命名良好的常量进行比较会使代码更易于阅读。

所以我想要的是这样的:

In Java:
class MyOrderClass
{
    public static final String ORDER_ASC="0";
    public static final String ORDER_DESC="1";
}

In the XML:
<string-array name="sortSelectionEntryValues">
<item>MyOrderClass.ORDER_ASC</item>
<item>MyOrderClass.ORDER_DESC</item> 
</string-array>

这有可能吗?感谢您的任何提示!

(请注意,排序只是一个愚蠢的例子,我只需要知道如何将Java常量集成到数组的XML定义中)

【问题讨论】:

    标签: android arrays constants


    【解决方案1】:

    这是不可能的。也就是说,您永远不必将“0”与任何东西进行比较。您可能会使用if(MyOrderClass.ORDER_ASC.equals(&lt;selected item from list&gt;){..},所以这应该不是问题。

    【讨论】:

    • 嗯,你是对的,这不是太大的问题。就那样做/保持 XML 不变。
    【解决方案2】:

    你不能按照你建议的方式去做,但是......

    您可能会以不同的方式来做,并在值文件中定义 XML 中的常量,并根据定义的值在 java 中定义静态和 XML 中的数组。这样它只定义一次并且使用相同的值。

    【讨论】:

    • 谢谢你,好主意,但在我看来你必须绕过太多的“角落”):
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多