在XML定义的数组中使用Java常量

时间:2011-06-09 15:08:12

标签: android arrays constants

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

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

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

所以我想要的是这样的:

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定义中)

2 个答案:

答案 0 :(得分:3)

那是不可能的。也就是说,你永远不必将“0”与任何东西进行比较。您可能会使用if(MyOrderClass.ORDER_ASC.equals(<selected item from list>){..}因此不应该是一个问题。

答案 1 :(得分:0)

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

您可以以不同的方式执行此操作,并在值文件中以XML格式定义常量,并根据定义的值定义java中的静态和XML中的数组。这样它只定义一次并使用相同的值。