Eu tenho strings definidas no arquivo de recurso strings.xml usual como este:
<string name="hello_world"> HELLO</string>
É possível definir cadeias de formato como a abaixo
result_str = String.format("Amount: %.2f for %d days ", var1, var2);
no arquivo de recurso strings.xml?
Eu tentei escapar dos caracteres especiais, mas não está funcionando.
android
android-resources
CocoNess
fonte
fonte
Respostas:
Você não precisa usar
formatted="false"
no seu XML. Você só precisa usar marcadores de formato de string totalmente qualificados -%[POSITION]$[TYPE]
(onde[POSITION]
é a posição do atributo e[TYPE]
o tipo de variável), em vez das versões curtas, por exemplo%s
ou%d
.Citação de documentos do Android: Formatação e estilo de strings :
fonte
Você deve adicionar
formatted="false"
ao seu recurso de stringAqui está um exemplo
No seu
strings.xml
:No seu código:
fonte
formatted="false"
pode implicar que a sequência não seja formatada. Postado em outra solução stackoverflow.com/a/20887690/228429String.format(getString(R.string.all), 3.12, 2)
desta forma:getString(R.string.all, 3.12, 2)
.25%
, o Android falhará.O arquivo interno
strings.xml
define um recurso String como este:Dentro do seu código (suponha que ele seja herdado do Contexto), faça o seguinte:
(Em comparação com a resposta de LocalPCGuy ou Giovanny Farto M., o método String.format não é necessário.)
fonte
Citação do Android Docs :
fonte
Para mim, funcionou assim em Kotlin:
minha string.xml
minha class.kt
D / Double_CharSequence: Preço: U $ 99,90
fonte