nonnull - que es android studio
¿Por qué Android Lint advierte sobre String.format utilizando la configuración regional predeterminada cuando se usa explícitamente Locale.US? (3)
La limpieza y la reconstrucción del proyecto deberían funcionar.
Por cierto, es posible que desee utilizar Locale.getDefault()
para "cuidar" los textos que no Locale.getDefault()
escritos en inglés.
Originalmente llamé a String.format
esta manera:
return String.format("%s %f %f", anotherString, doubleA, doubleB);
Lo que hizo que Android Lint generara esta advertencia:
Usar implícitamente la configuración regional predeterminada es una fuente común de errores: use String.format (Locale, ...) en su lugar
Así que lo cambié para usar Locale.US
explícitamente, según lo que leí en http://developer.android.com/reference/java/util/Locale.html en la sección "Tenga cuidado con la configuración regional predeterminada":
return String.format(Locale.US, "%s %f %f", anotherString, doubleA, doubleB);
¿Por qué Android Lint todavía genera la misma advertencia? Tengo que limpiar el proyecto en Eclipse para deshacerme de él, cuando la mayoría de las advertencias simplemente desaparecen tan pronto como se repara la línea ofensiva. No estoy seguro de si estoy haciendo algo mal o no.
Ubicación regional implícita en caso de conversión
Llamar a String#toLowerCase()
o #toUpperCase()
sin especificar una configuración regional explícita es una fuente común de errores. El motivo es que esos métodos utilizarán la configuración regional actual en el dispositivo del usuario, y aunque el código parece funcionar correctamente cuando está desarrollando la aplicación, fallará en algunas configuraciones regionales. Por ejemplo, en la configuración regional turca, el reemplazo en mayúsculas para i no es I.
Si desea que los métodos solo realicen un reemplazo ASCII, por ejemplo, para convertir un nombre enum, llame a String#toUpperCase(Locale.US)
lugar. Si realmente desea usar la configuración regional actual, llame a String#toUpperCase(Locale.getDefault())
.
http://developer.android.com/reference/java/util/Locale.html#default_locale
cuando mencioné la configuración regional con el formato, la advertencia de pelusa desapareció.
String.format(Locale.US,"%02d", selectedInt);