Tag Archives: Strings

Gestionar strings en Android

Android, Desarrollo Móvil

Ultimamente publico sobre AngularJS, pero como full stack developer, soy incapaz soy incapaz de casarme con una tecnología, me gusta trastear y complementar mis skills en otros terrenos, y como siempre le estoy dando vueltas a ideas nuevas, en este caso vamos a hablar de algo sobre Android.

Desarrollando una app que ya publicaré, encontré una solución, ya que varías veces había pecado de ignorante, para gestionar textos dinámicos en nuestra app android.

La idea trata de crear un recurso en el string.xml, el cual reusar en diferentes casos, como por ejemplo, la siguiente string:
“Tengo un ejemplo” en singular y “Tengo 5 ejemplos” o “Tengo ejemplos” en plural. La duda es, como reusar esto y que solo altere el número?

En este primer caso, podemos resolver esto con el recurso “plurals” en el archivo string.xml

Y como vamos a continuación, para usarlo tenemos que hacer referencia al recurso “plurals” y pasarle el valor.

Pero en este caso, tenemos un problema si queremos añadir una tercera posibilidad como: “No tengo ejemplos”. En este caso sería si el valor es 0. Pues tenemos otra posibilidad, un poco mas rebuscada pero que nos puede venir bien para strings simples. A continuación planteamos los ejemplos:
“No tengo ejemplos”
“Tengo un ejemplo”
“Tengo 5 ejemplos”

El recurso string sería algo como lo siguiente:

Y su modo de empleo no es otra forma tal como la tradicional, pero usando MessageFormat para pasarle los parámetros definidos en la cadena “{0}”

Esto es al igual que en otros lenguages, podemos pasar valores a cadenas tal como:

Por si queréis ver el ejemplo en marcha, os dejo un repo donde podréis ver como está implementado. https://github.com/dimaslz/DemoAndroidThings

También podemos hacer un condicional “if” que en caso de 0 usamos un recurso y en caso de usar plurales usamos el recurso plurals.

Bueno, espero que os haya servido ;).

PD: Y me olvidaba. Si queréis mas información al respecto: http://developer.android.com/guide/topics/resources/string-resource.html

tags: , ,