Ich habe Zeichenfolgen in der üblichen string.xml-Ressourcendatei wie folgt definiert:
<string name="hello_world"> HELLO</string>
Ist es möglich, Formatzeichenfolgen wie die folgende zu definieren?
result_str = String.format("Amount: %.2f for %d days ", var1, var2);
in der Ressourcendatei strings.xml?
Ich habe versucht, den Sonderzeichen zu entkommen, aber es funktioniert nicht.
android
android-resources
CocoNess
quelle
quelle
Antworten:
Sie müssen nicht
formatted="false"
in Ihrem XML verwenden. Sie müssen nur vollständig qualifizierte Zeichenfolgenformatmarkierungen verwenden%[POSITION]$[TYPE]
(wobei[POSITION]
die Attributposition und[TYPE]
der Variablentyp sind), anstatt beispielsweise die Kurzversionen%s
oder%d
.Zitat aus Android Docs: Formatierung und Styling von Zeichenfolgen :
quelle
Sie sollten
formatted="false"
Ihrer Zeichenfolgenressource hinzufügenHier ist ein Beispiel
In Ihrem
strings.xml
:In Ihrem Code:
quelle
formatted="false"
dies bedeuten könnte, dass die Zeichenfolge nicht formatiert wird. Gepostet eineString.format(getString(R.string.all), 3.12, 2)
können :getString(R.string.all, 3.12, 2)
.25%
Android ab.Innerhalb der Datei
strings.xml
definieren Sie eine String-Ressource wie folgt:Gehen Sie in Ihrem Code (vorausgesetzt, er erbt vom Kontext) einfach wie folgt vor:
(Im Vergleich zur Antwort von LocalPCGuy oder Giovanny Farto M. wird die String.format-Methode nicht benötigt.)
quelle
Zitat aus Android Docs :
quelle
Bei mir hat es in Kotlin so geklappt:
meine string.xml
meine class.kt
D / Double_CharSequence: Preis: U $ 99,90
quelle