2 Stimmen

Verwendung von Java-Konstanten in durch XML definierten Arrays

Ich habe ein Array wie dieses, das die Eintragswerte für eine ListPreference definiert:

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

Anstatt 0 und 1 in XML zu verwenden, möchte ich Java-Konstanten wie z.B. ORDER_ASC und ORDER_DESC verwenden, da ich später programmatisch auf den Wert des ausgewählten ListPreference-Eintrags zugreifen werde und den Wert im Code überprüfen muss, aber der Vergleich des Werts mit einer gut benannten Konstante macht den Code leichter lesbar.

Ich möchte also etwas in dieser Art haben:

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>

Ist das irgendwie möglich? Danke für jeden Hinweis!

(Bitte beachten Sie, die Reihenfolge ist nur ein dummes Beispiel, ich muss nur wissen, wie man Java-Konstanten in die XML-Definition eines Arrays integriert)

3voto

Haphazard Punkte 10802

Das ist nicht möglich. Abgesehen davon werden Sie niemals "0" mit irgendetwas vergleichen müssen. Sie werden wahrscheinlich if(MyOrderClass.ORDER_ASC.equals(<selected item from list>){..} Es sollte also kein Problem sein.

0voto

fleetway76 Punkte 1590

Sie können es nicht so machen, wie Sie es vorschlagen, aber...

Sie könnten es wahrscheinlich anders machen und die Konstante in XML in einer Wertedatei definieren und sowohl Ihre statische in Java, als auch Ihr Array in XML in Bezug auf den definierten Wert definieren. Auf diese Weise wird die Konstante nur einmal definiert und es wird derselbe Wert verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X