Android: Ganzzahl aus XML-Ressource

110

Wie muss ich meine XML-Ressourcen ändern oder welche XML-Datei muss ich erstellen, um auf ganzzahlige Werte genauso zuzugreifen, wie Sie auf Zeichenfolgenwerte zugreifen? R.string.some_string_resource ?

Zum Beispiel möchte ich im Code sagen:

ProgressDialog progressBar = new ProgressDialog(getContext());
progressBar.setMax(getInteger(R.integer.maximum));

Ist es möglich?

Terry
quelle

Antworten:

262

Ja, es ist möglich, es würde so aussehen:

  1. Erstellen Sie eine XML-Ressourcendatei im Ordner /res/values/integers.xml.

    Es steht Ihnen frei, ihm einen beliebigen Namen zu geben, aber wählen Sie einen, der offensichtlich ist.

  2. Erstellen Sie in dieser Ressourcendatei Ihre ganzzahligen Werte.

    Ihre Datei sieht dann ungefähr so ​​aus:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. Verweisen Sie wie folgt auf den ganzzahligen Wert im Java-Code:

    Es ist ein bisschen anders als das getString(), man muss einen kleinen Umweg machen.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);
Terry
quelle
1
Das ist ein doppelter Wert, keine ganze Zahl. Vielleicht stellen Sie das in einer separaten StackOverflow-Frage.
Terry
1
@ Terry Also ist dies die bevorzugte Methode, um Ganzzahlen in Android zu verwenden, ich codiere es normalerweise hart im Code selbst. Was ist Ihre Empfehlung?
capt.swag
2
@ capt.swag Normalerweise codieren Sie Ganzzahlen als Konstanten im Code in jeder Klasse entsprechend. Wenn Sie jedoch unterschiedliche Konstanten für unterschiedliche Layouts benötigen (dh Anzahl der Spalten für ein Raster), verwenden Sie XML-Dateien, um diese Konstante an verschiedene Bildschirmbreiten anzupassen. Hoffe das hilft
Rommex
1
Kann ich diesen ganzzahligen Wert direkt in XML verwenden?
Arbaz.in
1
@ capt.swag ja, das ist die bevorzugte Methode
Bato-Bair Tsyrenov
5

Sie müssen die Datei integers.xml zu Ihrem Projekt hinzufügen

Geben Sie hier die Bildbeschreibung ein

und dann

Geben Sie hier die Bildbeschreibung ein

und in integers.xml fügen Sie dies hinzu

<integer name="maximum">5</integer>
abolfazl bazghandi
quelle