Tengo cadenas definidas en el archivo de recursos strings.xml habitual como este:
<string name="hello_world"> HELLO</string>
¿Es posible definir cadenas de formato como la siguiente?
result_str = String.format("Amount: %.2f for %d days ", var1, var2);
en el archivo de recursos strings.xml?
Traté de escapar de los caracteres especiales pero no funciona.
android
android-resources
CocoNess
fuente
fuente
Respuestas:
No necesita usar
formatted="false"
en su XML. Solo necesita usar marcadores de formato de cadena completamente calificados%[POSITION]$[TYPE]
(donde[POSITION]
está la posición del atributo y[TYPE]
el tipo de variable), en lugar de las versiones cortas, por ejemplo%s
o%d
.Cita de Documentos de Android: Formato y estilo de cadena :
fuente
Debe agregar
formatted="false"
a su recurso de cadenaAquí hay un ejemplo
En su
strings.xml
:En su código:
fuente
formatted="false"
podría implicar que la cadena no se formatea.String.format(getString(R.string.all), 3.12, 2)
de esta manera:getString(R.string.all, 3.12, 2)
.25%
, Android se bloqueará.El archivo interno
strings.xml
define un recurso de cadena como este:Dentro de su código (suponga que hereda del contexto) simplemente haga lo siguiente:
(En comparación con la respuesta de LocalPCGuy o Giovanny Farto M., el método String.format no es necesario).
fuente
Cita de los documentos de Android :
fuente
Para mí funcionó así en Kotlin:
my string.xml
my class.kt
D / Double_CharSequence: Precio: U $ 99,90
fuente