Un String en Android, es un recurso de texto que nos va permitir poder contar con valores dentro de nuestra aplicación, estos valores pueden ser utilizando en cualquier parte de la aplicación. En este artículo vamos a hablar sobre que son los recursos de cadenas.

Tipos de recursos String en Android

Para empezar debemos saber que un recurso String en Android se presenta en tres tipos:

  • Cadena simple: Es un recuro del tipo XML que representa a una sola cadena de texto.
  • Arreglo de cadenas: Recurso del tipo XML que proporciona un arreglo (array) de cadenas de texto.
  • Cantidad de cadenas (purales): Recurso XML que representa cadenas de pluralización.

En cualquiera de estos tipos es posible aplicar métodos de marcado y estilo de textos, empecemos a ver cada uno de estos recursos y conocer su aplicación.

Aprende sobre el manejo de los recursos String en Android. Clic para tuitear

Todos los tipos antes mencionados se declaran en nuestro archivo de recursos strings.xml ubicado en la carpeta de recursos de nuestro proyecto.

Ubicación de los Strings en Android

Cadena simple, string

Para declarar una cadena simple en nuestro archivo de recursos se utiliza la siguiente sintanxis:

<resource>
 <string name="app_name">Deliverys</string>
 <string name="saludo">Hola</string>
</resource>

Como podemos apreciar en el código anterior tenemos la delcaración de dos recuros de cadenas con los nombres app_name y saludo respectivamente, para poder utilizar estos recursos en nuestra aplicación lo podemos realizar de la siguiente manera:

Desde un layout por ejemplo como un valor en un objeto TextView:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/saludo" />

Desde nuestro código Java:

String saludo =  getString(R.string.saludo);

Como podemos apreciar para invocar desde un layout se debe hacer referencia al recursos utiliando @string, y desde nuestro código Java utilizando la función getString(), enviandoles como parámetro el nombre de nuestro recurso a través de la clase R.

Arreglo de cadenas, string-array

En el caso de los recursos del tipo arreglos de cadenas, la forma de definirla en nuestro archivo de recursos es la siguiente:

<resource>
 <string-array name="recetas_categoria">
        <item>Licores</item>
        <item>Sopas</item>
        <item>Pescados y Mariscos</item>
        <item>Arroces</item>
        <item>Ensaladas</item>
        <item>Repostería</item>
        <item>Salsas</item>
 </string-array>
</resource>

Como podemos apreciar a diferencia de un string simple, los string-array tiene elementos del tipo <item><item>, los mismo que comprenden o formarían los elementos del arreglo, la referencia a este recuro se puede utilizar desde el código Java o desde nuestro layout, la forma de utilizarlo sería de la siguiente manera:

Código Java:

Resources res = getResources();
String[] recetas = res.getStringArray(R.array.recetas_categoria);

Desde un layout teniento la forma de como poblar un objeto Spinner

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:entries="@array/recetas_categoria"/>

Cantidad de cadenas, plurales

Para el caso de los recursos del tipo plurales, es un string en Andriod que representa cantidades, esto va depender de la situación en la que sea utilizada.

Uno de los usos que le podemos dar es en la búsqueda de cierta información en nuestra aplicación, y si el resultado de la misma devuelve uno, ninguno o varios resultados y cuantos.

Siguiendo el ejemplo de una aplicación de recetas de comida, donde el usuario realiza una búsqueda, tuviéramos el siguiente patrón de resultado: “n recetas encontradas”, donde n sería la cantidad de los elementos encontrados, imaginemos que tenemos un solo resultado, el patrón quedaría: “1 recetas encontradas”, por lo que no sería bien visto pos nuestros usuarios, para corregir esto vamos a utilizar los plurales utilizando los siguientes patrones:

  • “No se encontraron recetas”.
  • “Se encontró 1 receta”.
  • “Se encontraron n recetas”.

La sintaxis para definir nuestro recurso del tipo plural es el siguiente:

<resources>
    <plurals name="recetas_plural">
        <item quantity=["zero" | "one" | "two" | "few" | "many" | "other"]>contenido_string
    </item>
    </plurals>
</resources>
  • “zero”: hace referencia al número 0.
  • “one”: hace referencia al número 1.
  • “two”: hacer referencia al número 2, puede darse el caso de necesitarlo.
  • “few”: Se refiera a una cantidad pequeña.
  • “many”: Se refiera a una cantidad muy grande o de muchos elementos.
  • “other”: Por si no se cumple ninguno de los anteriores.

Para probar un ejemplo de como funcionan los plurales con los patrones indicados anteriormente vamos a definir nuestro recurso:

<resource>
 <string name="zero">No se encontraron recetas</string>

 <plurals name="nRecetas">
   <item quantity="one">Se encontró %d receta</item>
   <item quantity="other">Se encontraron %d recetas</item>
 </plurals>
</resourse>

En nuestro código Java utilizamos la función getQuantityString() para trabajar con los plurales que forma parte de los recursos del proyecto, asumiendo que tenemos un botón que hace la búsqueda y debe mostrar los resultados en un TextView, tendríamos lo siguiente

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.actividad_principal);
    TextView resultado = (TextView)findViewById(R.id.tvResultado);
}

public void Buscar(View view)
{
    //Procedimientos de búsqueda...
    //...
    
   if (cantidad == 0) {
        resultado.setText(R.string.zero);
    } else {
        Resources res = getResources();
        String string = res.getQuantityString(R.plurals.nRecetas,cantidad,cantidad);
        resultado.setText(string);
    }
}

Con el código anterior hacemos uso del recurso del tipo plural.

Comentarios finales

En este artículo explicamos los 3 tipos de recursos string en android que podemos utilizar, estos recursos tal como indicamos pueden contener textos con formatos y estilo para cada situación, también podemos utilizar los recursos string para manejar varios idiomas en nuestra aplicación, pero eso lo veremos en un próximo artículo.

Recuerda que si te gusto ayúdanos a llegar a más personas, compártelo en tus redes. Este y otros contenidos puedes tenerlo en tu buzón de correo, si no estas suscrito te invito a que lo hagas, ya somos más de 200 y queremos seguir creciendo.

Recuerda que puedes aprende a crear tu aplicación Móvil con nuestro curso de Android.