Android: entier de la ressource xml

110

Comment dois-je modifier mes ressources XML, ou quel fichier XML dois-je créer, pour accéder aux valeurs entières de la même manière que vous accédez aux valeurs de chaîne R.string.some_string_resource?

Par exemple, dans le code, je veux dire:

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

C'est possible?

Terry
la source

Réponses:

263

Oui c'est possible, ça ressemblerait à ceci:

  1. Créez un fichier de ressources xml dans le dossier /res/values/appelé integers.xml.

    Vous êtes libre de lui donner n'importe quel nom, mais choisissez-en un qui est évident.

  2. Dans ce fichier de ressources, créez vos valeurs entières.

    Votre fichier ressemble alors à quelque chose comme ça:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. Référencez la valeur entière dans le code Java comme ceci:

    C'est un peu différent du getString(), il faut faire un petit détour.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);
Terry
la source
1
C'est une valeur double, pas un entier. Peut-être que vous posez cela dans une question StackOverflow distincte.
Terry
1
@Terry Donc, est-ce la méthode préférée pour utiliser les nombres entiers dans Android, je le code généralement en dur dans le code lui-même. Quelle est votre recommandation?
capt.swag
2
@ capt.swag Habituellement, vous codez en dur des entiers en tant que constantes dans le code de chaque classe, le cas échéant. Mais si vous avez besoin d'avoir différentes constantes pour différentes dispositions (c'est-à-dire le nombre de colonnes pour une grille), vous utiliserez des fichiers XML pour adapter cette constante à différentes largeurs de l'écran. J'espère que ça aide
rommex
1
puis-je utiliser cette valeur entière directement dans XML?
Arbaz.in
1
@ capt.swag oui, c'est la méthode préférée
Bato-Bair Tsyrenov
5

Vous devez ajouter le fichier integers.xml à votre projet

entrez la description de l'image ici

puis

entrez la description de l'image ici

et dans integers.xml ajoutez ceci

<integer name="maximum">5</integer>
abolfazl bazghandi
la source