Android: numero intero dalla risorsa xml


110

Come devo modificare le mie risorse XML, o quale file XML devo creare, per accedere ai valori interi nello stesso modo in cui si accede ai valori stringa R.string.some_string_resource?

Ad esempio, nel codice voglio dire:

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

È possibile?

Risposte:


263

Sì, è possibile, sarebbe simile a questo:

  1. Crea un file di risorse xml nella cartella /res/values/denominata integers.xml.

    Sei libero di dargli il nome che desideri, ma scegline uno ovvio.

  2. In quel file di risorse, crea i tuoi valori interi.

    Il tuo file ha quindi un aspetto simile a questo:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
    
  3. Fai riferimento al valore intero nel codice Java in questo modo:

    È un po 'diverso dal getString(), devi fare una piccola deviazione.

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

1
È un valore doppio, non un numero intero. Forse lo chiedi in una domanda StackOverflow separata.
Terry

1
@Terry Quindi questo è il metodo preferito per utilizzare Integer in Android, di solito lo codifico nel codice stesso. Qual è il tuo consiglio?
capt

2
@ capt.swag Di solito si codificano gli interi come costanti nel codice in ogni classe in modo appropriato. Ma se è necessario disporre di costanti diverse per layout diversi (cioè numero di colonne per una griglia), si utilizzeranno file XML per adattare quella costante alle varie larghezze dello schermo. Spero che questo aiuti
rommex

1
posso usare quel valore intero direttamente in XML?
Arbaz. Il

1
@ capt.swag sì, questo è il metodo preferito
Bato-Bair Tsyrenov

5

Devi aggiungere il file integers.xml al tuo progetto

inserisci qui la descrizione dell'immagine

e poi

inserisci qui la descrizione dell'immagine

e in integers.xml aggiungi questo

<integer name="maximum">5</integer>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.