¿Cómo puedo utilizar estilos html en cadenas con argumentos de formato?

En mi aplicación, me gustaría definir una cadena de formato en strings.xml que tenga este aspecto (observe las etiquetas <b>...</b> ):

 <string name="location"><b>Location:</b> %1$s</string> 

Y luego use getString (int, Object …) para sustituir en un argumento de formato:

 String formattedString = getString(R.string.location, "Edmonton, AB"); 

Esto produce un valor de "Location: Edmonton, AB" . Me gustaría obtener un valor de "<b>Location:</b> Edmonton, AB" .

¿Hay alguna manera de hacer esto usando formatos de cadena en strings.xml sin dividirlo en dos cadenas?

De los documentos :

A veces es posible que desee crear un recurso de texto con estilo que también se utilice como una cadena de formato. Normalmente, esto no funcionará porque el método String.format (String, Object …) quitará toda la información de estilo de la cadena. El trabajo en torno a esto es escribir las etiquetas HTML con entidades de escape, que luego se recuperan con fromHtml (String), después de que el formato se lleva a cabo.

Por ejemplo:

 <resources> <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string> </resources> 

Asegúrese de escapar del texto que está pasando en String.format()

 String escapedUsername = TextUtils.htmlEncode(username); Resources res = getResources(); String text = String.format(res.getString(R.string.welcome_messages), escapedUsername, mailCount); CharSequence styledText = Html.fromHtml(text); 

Utilice String.Format. p.ej

  <string name="location"><![CDATA[<b>Location:</b> %s]]></string> String formattedString = String.Format(getString(R.string.location), "Edmonton, AB"); 
  • ProgressBar con un countdowntimer - Android
  • "R no se puede resolver a una variable" justo después de crear el proyecto android?
  • ¿Cómo implementar la función de búsqueda con SearchView, Retrofit y RxJava (RxBindings)?
  • Cómo limitar EditText para introducir sólo valores de flotante en Java?
  • ServiceTestCase <T> .getService?
  • ¿Cómo uncheck artículos en AlertDialog (setMultiChoiceItems)?
  • ¿Cómo puedo restar estas listas más rápido?
  • ¿Usando cuerdas en una caja de conmutación para un menú?
  • Anulación incorrecta de un paquete
  • Lectura de transacciones no confirmadas en Android
  • Cómo eliminar eventos específicos en el calendario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.