Al programar aplicaciones en Android, resulta ineludible el hacer uso del recurso "strings.xml", un archivo en el que podemos escribir todas las cadenas de texto que aparecen en nuestra aplicación. Las ventajas son claras:

  • Localización: disponemos de todas las cadenas de texto en un mismo archivo. Ideal para realizar correcciones o encontrar rápidamente un texto.
  • Reutilización: con total certeza una misma cadena aparecerá más de una vez en distintas partes de nuestra aplicación. Al almacenarlas de esta forma, facilitamos su reciclaje.
  • Multi idioma: incluso la aplicación más modesta puede necesitar en un futuro estar traducida a distintos idiomas. Con crear un archivo strings.xml adicional para el nuevo idioma, queda solucionado.

Pero ¿qué pasa cuando queremos construir cadenas complejas? (u otras estructuras como enlaces). Pues bien, Android nos facilita el crear cadenas complejas mediante la utilización de parámetros dinámicos. Imaginemos que queremos crear una cadena como la siguiente:

Bienvenido a Developing Frogtek.
Hoy es miércoles, 21 de julio.

de forma que la fecha cambie en función del día actual.

Podríamos crear una cadena de este tipo en el archivo strings.xml:

Bienvenido a Frogtek.org.n Hoy es %s

Después en nuestra aplicación podríamos mostrar la cadena de la siguiente forma:

getString(R.string.welcome_text, "http://developing.frogtek.org", Calendar.getDate())

Como se puede ver, la función getString acepta cualquier número de parámetros, al estilo del printf de C.