Android. Acceder a recursos de Strings

Enviado por tech4life el

En muchas ocaciones en nuestra aplicación queremos utilizar cadenas de texto, aquí tenemos distintas opciones, podemos añadirlas tal cual en nuestro código o bien las podemos añadir con alguna de las formas que tiene Android. 

Si lo añadimos en nuestro código tendremos algunos problemas, por ejemplo nos costará mucho más añadir traducciones. 

Lo correcto seria añadirlo como un recurso más de nuestra aplicación, como con las imágenes, iconos, etc.

Para ello buscaremos en la carpeta de res, tiene que haber una carpeta de values. Dentro deberíamos tener el fichero de strings.xml. Dentro añadiremos nuestra cadena de texto en el siguiente formato :

<string name="user_name">User name</string>

Como podéis ver simplemente creamos una entrada con el tag "string" y le damos un nombre y un valor.

Esta cadena la podemos utilizar desde nuestros layouts de forma fácil añadiendo como propiedad esto :

<TextView
   android:id="@+id/tvUsername"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginBottom="8dp"
   android:padding="8dp"
   android:text="@string/user_name" />

Como veis para mostrar la cadena de texto tenemos que poner @string y el nombre que le hayamos puesto.

Por otra parte en nuestro código también podemos añadir esta cadena de texto de forma programática, para ello haremos lo siguiente : 

String texto = getString(R.string.user_name);

Es muy sencillo como se puede observar, por una parte utilizamos la función getString y como parametro le tenemos que pasar el nombre que le hemos dado a nuestra cadena. Para acceder a ella nos serviremos de la R, que es la estructura que monta Android para guardar todos los identificadores de recurso. De entre ellos ahora queremos coger los de tipo "string" que son los de texto. Y por último seleccionamos el nombre que le pusimos al recurso.

Con esto ya hemos visto como crear cadenas de texto como recursos y utilizarlos tanto en nuestros layouts como de forma programática en el código.

Lenguaje
Nivel

Contenido Relacionado