Estoy configurando el texto usando setText () de la siguiente manera.
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
En eso, el primero es de uso simple y el segundo es configurar el texto con el formato del texto.
Android Studio es muy interesante, utilicé Menú Analyze -> Code Cleanup
y recibí sugerencias sobre las dos líneas anteriores.
No concatene el texto que se muestra con setText. Use una cadena de recursos con marcadores de posición. menos ... (Ctrl + F1)
Al llamar a TextView # setText:
- Nunca llame a Number # toString () para formatear números; no manejará separadores de fracciones y dígitos específicos de la localidad correctamente. Considere usar el formato String # con las especificaciones de formato adecuadas (% do% f) en su lugar.
- No pase un literal de cadena (por ejemplo, "Hola") para mostrar texto. El texto codificado no se puede traducir correctamente a otros idiomas. Considere usar cadenas de recursos de Android en su lugar.
- No cree mensajes concatenando fragmentos de texto. Dichos mensajes no se pueden traducir correctamente.
¿Qué puedo hacer por esto? ¿Alguien puede ayudar a explicar qué es y qué debo hacer?
NPE
si name
es asíNULL
name
no es NULL
antes de usar la setText()
función.
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
Y en su código java hace algo como esto: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(puede formatear en el archivo xml: [ developer.android.com/guide/topics/resources/…
String
intosetText()
. Ej:setText(name)
en lugar desetText("" + name)
. Porque si concatena texto, no se traducirá como si usara texto codificado como el mensaje notifica