Cómo dar formato a una cadena para diferentes idiomas con diferentes argumentos en Android?

Tengo dos recursos de la cadena. El primero de los valores principales está en inglés y no tiene un argumento de cadena:

<string name="example">Have a good day!</string> 

Pero en francés, bajo valores-fr, tenemos una frase diferente con un argumento, así:

 <string name="example">Bonne journée M. %1$s!</string> 

¿Cómo debo usar el formateador de cadena de recursos? Esto funciona, pero no parece correcto (y genera una advertencia de pelusa):

 textView.setText(getString(R.string.example, name)); 

La advertencia de pelusa es "StringFormatInvalid" y la descripción es "Formato cadena ' example ' no es una cadena de formato válida por lo que no se debe pasar a String.format "

No hay nada mal con su enfoque. El formateador funciona perfectamente incluso si hay demasiados argumentos. Los argumentos sobrantes se dejan caer.

Las advertencias de pelusa están ahí para indicar posibles errores no deseados en el código. Pero si sabe lo que está haciendo, puede suprimir la advertencia añadiendo la @SuppressLint("StringFormatMatches") al método o clase que lo incluye.

Puede utilizar el método String.format (String args, Object … args). Más información. En http://developer.android.com/reference/java/lang/String.html#format%28java.lang.String,%20java.lang.Object…%29

Se explica aquí! http://programmerguru.com/android-tutorial/android-localization-at-runtime/ debe crear una configuración personalizada y establecer nueva configuración en getResource

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.