Textos e identificadores en Android

Twitter: @roboxito

A diferencia de la programación tradicional en java o en otros lenguajes, en Android tenemos la oportunidad de manejar una capa independiente para escribir textos e identificadores, a los que les pondremos nombre como si asignáramos constantes.

Bajo la carpeta \res\layout encontramos nuestra pantalla principal main.xml, al abrirla veremos la interfáz gráfica y de un costado la barra de controles que podemos utilizar.

Comenzaremos con la etiqueta de hola mundo que se encuentra por defecto, la seleccionamos y presionamos el botón derecho. En el menú contextual seleccionamos Edit Id, y le ponemos lblHola por ejemplo.

Con esto le asignamos un nombre o identificador al control. En las propiedades hacemos referencia al identificador con la siguiente sintaxis: @+id/lblHola .

Ahora presionamos nuevamente el boton derecho sobre la etiqueta y seleccionamos Edit Text, nos mostrará una ventana para seleccionar o crear un nuevo recurso de texto.

Presionamos el botón New String y tendremos otro díalogo donde escribimos el texto completo y le asignamos un nombre, este se guardará en el archivo /res/values/strings.xml.

Y si revisamos el fuente del archivo xml, veremos lo siguiente:

 < ?xml version="1.0" encoding="utf-8"?>
 < resources>
    < string name="hello">Hello World, HolaMundoActivity!
    < string name="app_name">HolaMundo
    < string name="txtHola">Esta es una prueba de creación de recursos de texto en Android
 < /resources>

Así que cuando necesitemos editar algún texto, podemos recurrir a este archivo xml y cambiarlo directamente.

Para usar estos nombres de texto por así decirlo, en las propiedades de componentes usamos @string/txtHola, y en el código de java, recurrimos al objeto R, por ejemplo:


 package com.roboxito;

 import android.app.Activity;
 import android.os.Bundle;
 import android.widget.TextView;

 public class HolaMundoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView etiqueta=(TextView) findViewById(R.id.lblHola);
        etiqueta.setText("Asignando string"); //string
        etiqueta.setText(R.string.txtHola);   //asignando mediante objeto R
    }
 }

Comparte ➜

No comments

Add yours