sábado, 17 de marzo de 2012

6.8.2.-P. Android – Puntuaciones II – (TabHost)


6.8.2.- Programación en Android – Puntuaciones II – (TabHost)

En este capítulo continuamos con nuestra ActividadPuntuaciones, y vamos a escribir el código necesario para que se muestren las pestañas. Para ello inicializaremos un control TabHost y le añadiremos dos pestañas.

Configurando el control TabHost

El control TabHost debe ser inicializado para que funciones correctamente, para ello obtendremos obteniendo la referencia del control y después llamaremos al método setup() para inicializar el mismo:

TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
tabHost.setup(); //Se inicializa el tabhost

Una vez inicializado tenemos que configurar las pestañas y añadirlas. Para configurarlas utilizaremos el constructor TabSpec(), que nos permitirá configurar la pestaña, sus opciones pueden ser las siguientes:

Opciones de TabHost.TabSpec:
Es un constructor para ayudar a elegir entre las opciones para crear una pestaña:
-Indicador de pestaña (SetIndicator) Elecciones posibles:
1.Poner una etiqueta (label)
2.Poner una etiqueta y un icono.
-Contenido (SetContent). Elecciones posibles:
1.El ID de una vista (view)
2.Un TabHost.TabContentFactory que crea el contenido de la vista.
3.Un intent que lanza una actividad.
-Etiqueta (Tag). Usada para seguir su pista (acceder a él).

Añadiremos el siguiente código para configurar la primera de nuestras pestañas:

Resources res = getResources(); //Objeto resources para acceder a los mismos.

//Creamos una pestaña con su titulo.
//Su referencia tagSpec será "Locales"
TabSpec pestañaLocales = tabHost.newTabSpec("Locales");

//Cargamos el texto y le asignamos un drawable,
// aunque podíamos asignar sólo el texto, o una vista.
pestañaLocales.setIndicator(
res.getString(R.string.strPuntuacionesLocales),
res.getDrawable(android.R.drawable.star_on));
//El contenido de esta pestaña se asigna
// a este scrollview mediante setContent:
pestañaLocales.setContent(R.id.scrollView_PuntuacionesLocales);

Cuando hallamos terminado de configurarla, la añadimos con el método addTab():

//Añadimos la pestaña que acabamos de configurar.
tabHost.addTab(pestañaLocales);

Ahora repetimos los pasos para la otra pestaña:

//Creamos una pestaña con su titulo.
//Su referencia tag Spec será "Globales"
TabSpec pestañaGlobales = tabHost.newTabSpec("Globales");

//Cargamos el texto y le asignamos un drawable,
// aunque podíamos asignar sólo el texto, o una vista.
pestañaGlobales.setIndicator(
res.getString(R.string.strPuntuacionesGlobales),
res.getDrawable(android.R.drawable.star_big_on));
//El contenido de esta pestaña se asigna
// a este scrollview mediante setContent:
pestañaGlobales.setContent(R.id.scrollView_PuntuacionesGlobales);
//Añadimos la pestaña que acabamos de configurar.
tabHost.addTab(pestañaGlobales);

Ahora que tenemos mostradas las pestañas vamos a configurar cuál se mostrará por defecto, para ello podemos utilizar dos métodos de TabHost: setCurrentTab (int índice) o setCurrentTabByTag (string Referencia). La diferencia está en que el primero utiliza un número entero que será el número de pestaña, comenzando en 0, y el segundo método utiliza la referencia que se añadió al crear el TabSpec correspondiente (“Locales” o “Globales”):

tabHost.setCurrentTab(0);//Se indica mediante un índice (0 a n)
tabHost.setCurrentTabByTag("Locales");//Se indica con un String

Podemos elegir cualquiera de los dos métodos. A partir de aquí ya podemos ejecutar nuestra aplicación y ver como se muestran las dos pestañas, con su nombre y un bitmap, etc.

En el siguiente capítulo rellenaremos los datos para las puntuaciones a partir de los ficheros XML.



Ver. 1.0 – Revisión 16/03/2012

No hay comentarios:

Publicar un comentario