Estou definindo texto usando setText () da seguinte maneira.
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
Naquele, o primeiro é de uso simples e o segundo é o de definir texto com a formatação do texto.
O Android Studio é muito interessante, usei o Menu Analyze -> Code Cleanup
e recebi sugestões acima de duas linhas como.
Não concatene o texto exibido com setText. Use a cadeia de recursos com espaços reservados. menos ... (Ctrl + F1)
Ao chamar o TextView # setText:
- Nunca chame Number # toString () para formatar números; ele não manipulará os separadores de fração e os dígitos específicos da localidade corretamente. Considere usar o formato String # com especificações de formato adequadas (% d ou% f).
- Não passe uma string literal (por exemplo, "Hello") para exibir o texto. O texto codificado não pode ser traduzido corretamente para outros idiomas. Considere usar seqüências de recursos do Android.
- Não crie mensagens concatenando pedaços de texto. Essas mensagens não podem ser traduzidas corretamente.
O que posso fazer por isso? Qualquer pessoa pode ajudar a explicar o que é e o que devo fazer?
NPE
se name
forNULL
name
não é NULL
antes de usar a setText()
função.
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
E no código java, você faz algo assim: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(você pode fazer a formatação no arquivo xml: [ developer.android.com/guide/topics/resources/…
String
para dentrosetText()
. Ex:setText(name)
em vez desetText("" + name)
. Porque se você concatenar o texto, ele não será traduzido como se você usasse o texto codificado como a mensagem notifica