J'ai des chaînes définies dans le fichier de ressources habituel strings.xml comme ceci:
<string name="hello_world"> HELLO</string>
Est-il possible de définir des chaînes de format telles que celle ci-dessous
result_str = String.format("Amount: %.2f for %d days ", var1, var2);
dans le fichier de ressources strings.xml?
J'ai essayé d'échapper aux caractères spéciaux mais cela ne fonctionne pas.
android
android-resources
CocoNess
la source
la source
Réponses:
Vous n'avez pas besoin d'utiliser
formatted="false"
dans votre XML. Il vous suffit d'utiliser des marqueurs de format de chaîne complets -%[POSITION]$[TYPE]
(où[POSITION]
est la position de l'attribut et[TYPE]
est le type de variable), plutôt que les versions courtes, par exemple%s
ou%d
.Citation d' Android Docs: Mise en forme et style des chaînes :
la source
Vous devriez ajouter
formatted="false"
à votre ressource de chaîneVoici un exemple
Dans votre
strings.xml
:Dans votre code:
la source
formatted="false"
pourrait impliquer que la chaîne ne soit pas formatée. Publié une autre solution stackoverflow.com/a/20887690/228429String.format(getString(R.string.all), 3.12, 2)
la façon suivante :getString(R.string.all, 3.12, 2)
.25%
, Android plantera.Le fichier
strings.xml
interne définit une ressource String comme ceci:À l'intérieur de votre code (supposons qu'il hérite du contexte), procédez simplement comme suit:
(Par rapport à la réponse de LocalPCGuy ou Giovanny Farto M., la méthode String.format n'est pas nécessaire.)
la source
Citation de Docs Android :
la source
Pour moi, cela a fonctionné comme ça à Kotlin:
mon string.xml
ma classe.kt
D / Double_CharSequence: Prix: 99,90 $ U
la source