Androideity

Programación android en español, tutoriales, documentación, noticias, smartphones, tablets, programación android, aplicaciones android

Pestañas en Android usando Eclipse, Segunda Parte

| | 43 Comentarios

Twitter: @JaimeYesidLeon

Cuando participas en un blog en el cual pretendes que las personas aprendan sobre un tema en específico, en este caso sobre programación en Android, intentas explicar temas que le interesen a la mayor cantidad de personas y que además sea de utilidad; la mejor manera de hacer esto posible es escuchando tus peticiones, leyendo tus comentarios y respondiendo a tus inquietudes, es por eso que hoy te traigo la segunda parte del tema de pestañas el cual obtuvo mucho interés por parte de nuestros lectores y surgieron varias inquietudes, sigue leyendo y entérate cómo sacarle el mayor jugo posible a este tema tan interesante.

El día de hoy te traigo la segunda parte del tema sobre TabHost, en dónde he decidido resolver algunas dudas e inquietudes que surgieron en la primera entrega de este tema.

Al escribir este tutorial asumo que ya viste la primera parte Pestañas en Android usando Eclipse y sabes a que nos referimos cuando hablamos de TabHost, TabWidget, y FrameLayout, así que no voy a repetir lo mismo, también asumo y espero que hayas visitado la página oficial de Android Developers en donde se habla sobre este tema TabHost y en donde puedes ver todos los recursos con los que cuenta Android a la hora de crear nuestros TabHost. Por lo que en este post abordaré los siguientes puntos:

  1. Vamos a mostrar las “Pestanas” en la parte inferior de la pantalla como se hace cuando usas el reproductor de la emisora en Android (por poner un ejemplo), uno de nuestros lectores nos lo pidió pero no me dio tiempo de contestarle y creo que borró el comentario antes de explicárselo, así que aquí lo tienes amigo.
  2. Para nuestro amigo Gabriel, que nos preguntaba cómo cambiarle el fondo de cada pestaña aquí te mostramos ya cada una con un color diferente; espero te sirva.
  3. Vamos a mostrar el explorador para que muestre una página en concreto, esto es para nuestro lector Ricardo Reyes Ramos que muy formalmente nos preguntaba cómo hacer para colocarlo en una de las pestañas de la aplicación.
  4. Para nuestro amigo Francisco que nos preguntaba cómo mostrar un Mapa en una de las pestañas aquí también te lo mostraremos.
  5. Por último para nuestro amigo JLuis que nos preguntaba cómo insertar una lista o ListView en una actividad de las pestañas, aquí lo mostramos también.
  6. Para terminar haremos 6 pestañas la cuales tengamos que desplazar para mirar qué otras opciones tenemos disponibles.

Antes de continuar quisiera hacer una anotación a una pregunta que me hacían:

¿Por qué cuando desde dentro de una de las pestañas se llamaba a otra pulsando por ejemplo un botón esta se salía y ya no mostraba más el TabHost con las pestañas?

La respuesta es sencilla, debido a que el TabHost se maneja desde la actividad principal, aquí hacemos un Intent para llamar a las demás Activity, pero solo cuando pulsamos sobre cada una de los nombres de las pestañas. Por el contrario, si llamamos a la Activity desde otro punto pues se saldrá del TabHost y ya no lo mostrará más.

Esto es una cuestión de concepto, si vas a trabajar con TabHost o “Pestañas”, la idea es que el usuario acceda rápidamente a cada pestaña pulsando sobre la que desea acceder sin necesidad de crear más botones que lleven a la misma pestaña. Miren por ejemplo la aplicación de Twitter para Android:

Cada una de las pestañas tiene una función específica, clara y fácil de acceder, pero cuando me interesa un tweet en especial, pulso sobre este y se me abre una nueva Activity con la información ampliada de este y con más opciones como por ejemplo la de RT, marcar como favorito, o responder, y las pestañas desaparecen porque no tiene que ver más con la navegación entre las secciones de la aplicación.

La ideas es entender que una aplicación es más que escribir líneas y más líneas de código, es entender al usuario y lograr que le sea de utilidad la aplicación que está usando.

1. Vamos a tomar como base el código que hicimos en la primera entrega y vamos a modificarlo comenzando con la manera de poner las pestañas en la parte baja de nuestra pantalla, lo cual haremos desde el layout de la actividad principal:

Como podrás darte cuenta, para mostrar las pestañas en la parte baja de nuestra pantalla declaramos primero el FrameLayout y seguido el TabWidget que muestra las pestañas como tal; además modificamos las propiedades de “layout_weight”, “padding” y “layout_marginBotom” para que tome el mejor aspecto posible en nuestra aplicación.

 

2. Cuando tenemos ya nuestras pestañas en la parte baja de nuestra pantalla, les vamos a cambiar el color a las mismas con la siguiente línea de código:

tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.BLUE);

Con esta línea estamos diciendo que del TabHost tome solo el TabWidget (osea que solo las pestañas y no el FrameLayout), y que tome solo nuestra pestaña hija indicada con el número que va entre paréntesis. De esta forma hacemos referencia a cada una de las pestañas que vayamos creando y por último indicamos que configure el fondo con un color, en nuestro caso utilizamos los colores estándar que trae Android por defecto. Si lo que quieres es dejar una imagen de fondo y no un color, puedes hacerlo con la instrucción setBackgroundDrawable.

 Como puedes ver, cuando llamas el Intent de cada una de las pestañas le envías las propiedades con las que debe verse la pestaña, así que puedes cambiarle el color de fondo a tu gusto. Pero si quisieras que todas las pestañas tuvieran un solo color y ahorrarte unas líneas de código, tan solo tendrías que escribir la línea de código:

 tabHost.getTabWidget().setBackgroundColor(Color.BLUE);

Esta línea hace referencia a todo el TabWidget, y cambia el color de todas las pestañas a un solo fondo, y el cual cambia cuando la pestaña está seleccionada.

 

3. Como habíamos mencionado en la primera entrega de este tutorial, hay varias formas de manejar un TabHost, nosotros te explicamos la manera en la que cada vez que pulses una pestaña, esta abra una nueva Activity, osea una nueva clase, para que así puedas colocar en esta clase lo que desees y esto incluye un WebView, o un MapView, un ListView o lo que sea que necesites mostrar. En la primera entrega no te hicimos ejemplos para no alargar mucho la explicación, pero hoy te mostraremos estos 3 ejemplos que fueron solicitados por ustedes nuestros queridos lectores, y empezamos mostrando un WebView en el cual visualizamos una página de internet determinada. Para esto empezamos modificando el layout de la Activity de la siguiente manera:

 En la que únicamente indicamos que necesitamos un LinearLayout y nuestro respectivo WebView que vamos a utilizar para mostrar la página. Ahora nos dirigimos a nuestra Activity en la cual digitamos un trozo de código muy sencillo indicando la dirección de la página que queremos mostrar:

 Y así de fácil mostramos una WebView en nuestro TabHost, que puede ser de mucha ayuda y se ve muy bonito cuando se está ejecutando. Así es como se ve en nuestro emulador:

 Para nuestro segundo ejemplo mostraremos un MapView, el cual ya fue explicado muy bien por nuestra querida Aurora (@condesa_sama), en el tutorial llamado “Usando Google Map con Android” para así evitarme explicar doblemente un tema y lo que hice fue únicamente trasladar lo que ella realizó y aplicarlo a nuestro TabHost. Así que necesitamos 3 cosas principales para mostrar un MapView, lo primero es el código del layout en donde irá nuestra key de Google, y todo lo demás que ya está todo muy bien explicadito, así que nuestro layout de la pestana1.xml quedaría de la siguiente manera:

 Como nos explicaba Aurora, necesitamos implementar otra clase para hacer que podamos mostrar los marcadores y demás cosas que van encima del MapView, la cual en el tutorial de MapView la han llamado MyOverlay.class, así que nosotros también la llamaremos de esta manera:

 Todo el código de esta clase lo encontrarás en el tutorial de Aurora donde también encontrarás el link hacia el código fuente en nuestra cuenta de GitHub.

Por último debemos hacer referencia a nuestra Activity principal que será la que muestre nuestro mapa en la pestana1.java, la cual debe extender a una MapActivity quedando de la siguiente manera:

 Aquí si puedes ver todo el código de la Activity, que llamamos pestana1.java y que básicamente es el mismo código que Aurora nos mostró, donde se despliega el mapa de México con un marcador sobre una determinada coordenada, y si pulsamos sobre ese punto no muestra un lindo mensaje que dice “Hola, te saludo”; y todo esto contenido dentro de un TabHost. Mira el resultado en nuestro emulador:

 Terminamos los ejemplos agregando una lista a nuestro TabHost, el cual también es muy sencillo de realizar, primero en el layout de nuestra pestana3.xml vamos a eliminar el LinearLayout y tan solo dejamos un TextView que es donde se van a escribir los ítems de nuestra lista; el layout para nuestra Activity 3. El contenido para el archivo pestana3.xml será el siguiente:

 Creamos ahora una lista que vamos a mostrar en nuestra Activity, la que vamos a llenar con los equipos de fútbol de la Eurocopa que están de moda en estos días, así que dentro del archivo strings.xml de nuestro proyecto vamos hacerlo quedando de la siguiente manera:

 Y por último debemos modificar nuestra clase que para nuestro caso será la que habíamos llamado Pestana3.java, y que cabe destacar extiende de la clase ListActivity para que sea más fácil el manejo de los elementos de la lista que queremos mostrar; así que nuestra Activity queda de la siguiente manera:

 El resultado de ejecutar este código es el siguiente:

 Para terminar, te mostraré la manera en la cual deslizar las pestañas que hemos creado cuando tenemos más de las que podemos mostrar en pantalla, y debemos arrastrarlas para encontrar la que necesitamos. Como no existe una característica asociada a realizar esto, debemos crear un recurso para nuestro objetivo, es algo muy sencillo y que le da un toque muy vistoso a nuestro TabHost. En nuestro layout principal que contiene el TabHost (en nuestro caso llamado main.xml) debemos agregarle el recurso llamado HorizontalScrollView como padre del TabWidget para que solo afecte a este recurso y no a toda la Activity. Este elemento es el que nos permitirá deslizar las TabWidget. Entonces, nuestro layout quedaría de la siguiente manera:

 Si quieres ver cómo se maneja esto desde nuestro emulador, te invitamos a que mires el siguiente video en donde se muestra el funcionamiento de nuestro proyecto, en especial para que veas el manejo del HorizontalScrollView:

Un poco largo el tutorial de hoy, pero de seguro bastante jugoso en contenido y ejemplos que espero te sean de mucha ayuda para tus aplicaciones y desarrollos.

Recuerda que estamos aquí para ayudarte y darte una mano en cuanto se encuentre a nuestro alcance.

Espero que te sea de ayuda este tema para tus futuras aplicaciones, espera pronto nuevos temas sobre esta fabulosa plataforma Android.

Nota: Si detectas algún error en el código, en la explicación, escrito o en el video, por favor escríbenos y con mucho gusto la corregimos. Agradecemos tu ayuda.
Nota 2: A partir de esta entrega dejaremos todo el código de los proyectos en un repositorio alojado en GitHub , por lo tanto solo tendrás que descargar el proyecto y verificar si tienes alguna duda. Abajo te dejo el enlace directo para la descarga.

 

 

Comparte este post

Acerca de: jaime

Hola, mi nombre es Jaime Yesid Leon, soy de Bogotá–Colombia, soy Ingeniero Electrónico, me encanta la electrónica, los microcontroladores y la programación. Practico futbol, leo mucho y no dejo los video-juegos para nada. Hago lo que me gusta y desde que conocí el SO Android me enamore y por eso estaré aquí aportando mi granito de arena a Androideity, una pagina genial.

Sígueme en Twitter

Leer todos mis artículos

También puede interesarte

Comentarios de este artículo

  • http://gonzalobenoffi.com.ar/ Gonzalo Benoffi

    La imagen contiene un link a la misma imagen y no al code del tutorial….

    Igualmente me ha parecido muy bueno el tuto

    Gracias!

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Gonzalo:

      Tienes toda la razon, se me olvido colocar el enlace. Gracias por el detalle y gracias por el bueno comentario.

      Cordial saludo

      Jaime

      • DevCH

        Recibe las críticas con humildad y no te pongas al tu por tu, siempre habrá alguien mejor que nosotros…

  • Perico De los Palotes

    Hola, enhorabuena por el tutorial!
    Me preguntaba cómo pasar información entre pestañas. Por ejemplo, en la pestaña1 tengo un spinner, un EditText y un botón “Guardar”. Al pinchar en guardar me gustaría guardar esas variables para que cuando pinche en la pestaña2 sean accesibles desde allí. Muchas gracias.

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Perico De los Palotes:

      Lo que me indicas se llama persistencia, y es la manera en la que guardo datos de mi app para ser usados despues; por ejemplo la persistencia se usa para guardar datos del usuario como tipo y tamaño de letra que desea, el lenguaje que prefiere usar, contraseñas y cosas muy sencillas; aqui no lo hemos tratado muy a fondo pero podria hacer un tutorial sobre este tema de persistencia.

      Pero hay otras maneras de manejar lo que indicas, y es guardando archivos como archivos en la memoria interna o externa, o usar una base de datos: que tal si miras estos tutoriales:

      http://androideity.com/2011/11/03/escribiendo-archivos-en-la-memoria-externa-sd-card/

      http://androideity.com/2011/10/31/escribiendo-archivos-en-la-memoria-interna/

      http://androideity.com/2011/10/12/manejo-de-bases-de-datos-en-android-i/

      Si la duda persiste, puedo hacer un tutorial muy sencillo sobre persistencia.

      Cordial saludo

      Jaime Leon

      • Carlos Reyes

        Excelente tutorial, para las personas que estan empezando en el mundo de la programacion android esta muy bien explicado.

        Hay otra forma de guardar datos y son las SharedPreferences , es util si lo que necesitas guardar es una clave,un usuario o algun dato.. no confundir con una base de datos. Ademas de que la info queda guardada en la memoria del telefono y puedes acceder a ella desde cualquie punto de tu aplicacion.

        http://developer.android.com/reference/android/content/SharedPreferences.html

        Por eso es que me uni a esta comunidad, Siempre compartiendo conocimiento.
        Exitos.

        • Perico De los Palotes

          Muchas gracias a los dos por vuestra respuesta. Optaré por lo de sharedpreferences haciendo un menú que parece más sencillo!

  • charles

    Hola, que excelente tutorial,
    jaime leon queria saber sino tienes un ejemplo de android en donde yo envie datos de android a una interfaz en el pc y del pc a android por conexion wifi. te adradeceria si me ayudaras. te escribo de valledupar

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Charles:
      Te tengo buenas noticias amigo, nuestro compañero editor Sebastian pronto hara un tutorial sobre este tema, asi que ademas de un ejemplo vas a tener una explicacion sobre el mismo tema.
      Si quieres seguirlo en twitter su cuenta es @seba_cipolat si quisieras consultarle mas cosas.

      Cordial saludo

      Jaime

      • http://twitter.com/seba_cipolat sebastian cipolat

        Si es cierto estoy preparando un tutorial sobre eso, igual de todas formas en internet hay informacion sobre ese tema.

        saludos

  • Isma

    Hola! tengo un problema con el tema de las pestañas, a ver si me podéis ayudar:

    Quiero mostrar 5 listados, cada uno en una pestaña distinta. Para ello, tengo una clase que guarda una lista que a su vez incluye 5 listados y en cada pestaña llamo a la misma activity, pero cargando un listado distinto en cada una.

    El problema es que quiero incluir una opción que actualice todos los listados. Es decir, que al pulsar un botón en el menú emergente se actualice el contenido de las 5 pestañas, no solo el de la que está seleccionada.

    Mi primera idea fue actualizar la clase, pero al hacerlo solo se actualiza la pestaña seleccionada. Me imagino que el problema es que las otras pestañas no “saben” que se ha actualizado el contenido y continúan con el contenido antiguo. ¿Como puedo hacer para señalar a cada pestaña que tiene que actualizarse?

    • Carlos Reyes

      No me queda clara, tu pregunta. Tienes 5 pestañas y en cada una tienes un listado diferente? Puedes explicar un poco mejor y con mucho gusto te ayudo.

      Porque lo que puedes implementar es un listener para que cada pestaña “sepa” cuando debe actualizarse.

      • Isma

        Exactamente, 5 pestañas y en cada una cargo un listado diferente, con la particularidad de que no uso una activity distinta en cada pestaña, sino una única activity que en cada pestaña carga un listado distinto.

  • Butifarro

    Hola! Solo un pequeño apunte. Todo esto está deprecated desde Android 3.0, así que no sirve de nada aprenderlo. Saludos!

    • http://twitter.com/seba_cipolat sebastian cipolat

      Por si no sabias todavia se siguen haciendo aplicaciones para versiones de android inferior a la 3.0

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Butifarro:

      Te comento que las cifras de google indican que solo el 5% de los Android en el mundo tienen ICS, y la version mas usada en la 2.3 o GingerBread con mas del 80%, y es muy posible que mucho Android en el mundo no se puedan actualizar a ICS por las caracteristicas de hardware, asi que este tema aplica todavia por mucho tiempo.

      Ademas aunque tengas ICS puedes correr aplicaciones hechas en versiones inferiores, asi que no hay ningun problema para aquellos que deseen usar este recurso en sus apps.
      Y la verdad es que si sirve de mucho aprenderlo, si tu no lo quieres aprender no hay ningun problema pero porfavor no comentes que no sirve de nada porque demeritas mi trabajo y el trabajo de mis compañeros.

      Cordial saludo

      Jaime Leon

    • http://twitter.com/wisemaster77 Omar Rentería

      Creo que no sabes que la versión de Android más utilizada en el mundo es la 2.3… Así que, cruda la llevas. Bastante bueno es siempre pensar en la mayoría de los clientes, en especial en Android un mercado tan distribuido en cuanto a versiones, que esto no necesariamente tiene que ser malo.

      • Aneudy

        De acuero contigo Omar !

    • Josepphh

      Muy sierto Todo esto está deprecated desde Android 3.0,…. DEBEN DE TENERLO EN CUENTA … pero para los que preferimos hacer aplicacIones para versiones inferiores.. va de maravilla …. por ahi se ven algunos detalles que se pueden pulir pero igual funciona ya es criterio de cada uno SALUDOS–

  • Caucasuso33

    hola Jaime me parecio muy bueno el tuto, tambien he hecho el de condesa sama de como crear una base de datos sqlite, y me gustaria saber como agregar esa base de datos a una de las pestañas.
    Por cierto gracias por los tutos que soy medio rockie, y estoy aprendiendo un moton.

  • Caucasuso33

    Ya consegui hacerlo:
    Una vez completado el tutorial de la base de datos, y con nuestro ejemplo pestañas abierto, copiar los archivos de la base de datos, en el ejemplo pestañas, cada archivo en su correspondiente carpeta, sin olvidar crear el paquete database y sus correspondientes activities, en su sitio, una vez echo esto, copiar el codigo de tareasSQLiteActivity, en pestaña1 activity, o pestaña2, la que quieras, borrando antes su contenido, esto es lo principal, luego a lo mejor hay que cambiar algun nombre, pero sale.

  • Vladimir

    Hola Jaime, he estado siguiendo los tutoriales de las pestañas, la verdad es que este sitio está fenomenal. Me ha surgido un problema con este segundo tutorial, bueno en realidad 2 problemas, primero con la pestaña que debe cargar la pag web, cuando pincho la pestaña para cargar la página, me dice que no ha encontrado la url que yo le he puesto, no sé que pasará porque he seguido todo los pasos. El segundo problema es con la lista cuando pincho en la pestaña 3 me sale un dialogo con el siguiente mensaje: “Sorry The application has stopped unexpectedly. Please try again”…los pasos para hacer esta parte también los he seguido al 100%, te agradeceria alguna pista sobre que puede estar pasando.

    • Zackis

      Hola, aunque hace ya tiempo de tu pregunta sobre el WebView y puede que ya lo hayas solucionado a raíz de que, siguiendo este tutorial, a mí también me pasó que me daba el mismo error de acceso a la URL especificada, te comento, o dejo constancia para darle la solución a todo el que lo necesite, que lo que falta es incluir una serie de permisos de conexión dentro del código del archivo AndroidManifest.xml del proyecto. Los permisos que yo he incluido y que permiten conectar y que no salga el mensaje de error especificado son:

      Espero haberte ayudado o haber ayudado a todo el que necesite esta solución.

  • Vladimir

    bueno me autorespondo por si a alguien le ha sucedido lo mismo que a mi con la lista, he probado con este codigo y funcionó

    public class Pestana3 extends ListActivity {
    ArrayAdapter adaptador;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    adaptador= new ArrayAdapter(this, R.layout.pestana3, eurocopa);
    setListAdapter(adaptador);
    }
    String [] eurocopa = new String[]{“Alemania”, “Croacia”,
    “Dinamarca”, “Holanda”, “Italia”,
    “Francia”, “España”,”Inglaterra”, “Grecia”,
    “Portugal”,”Suecia”, “Rusia”,”Republica”, “Checa”,
    “Irlanda”, “Polonia”, “Ucrania”
    };

    }

  • Pingback: Action Bar Android usando Eclipse | Androideity

  • Eduardo Mendoza

    Buen Dia primeramente quiero agradecerles por este excelente tutorial…. Y mi consulta es si es posible realizar el TabHost sin la necesidad del TabActivity ya q estoy desarrollando una aplicacion la cual va a ser mi tesis de graduacion y quisiera hacerlo sin tabActivity actualmente estoy usando el API 17 con eclipse… GRacias…..

  • Dan

    Hola, tengo un pequeño problema, tu ejemplo me ha enseñado bastante, pero es posible que el tabactivity no sea el main? porque hago todo y creo todo como se hace en los 2 tutoriales, pero al intentar llamarlo desde otra actividad con startActivity y el intent con la clase, me sale el famoso Sorry, perdon pero son noob en esto, no se si se tenga que llamar de otra manera… espero que me puedan ayudar.

    • yhon

      creo que solo es el nombre del fichero puedes llamarlo como quieras pero siempre y cuando al momento de llamarlo en donde sea debas poner el nombre del fichero

  • Petu

    Hola espero me puedas ayudar, si en mi xml en el que se va a cargar el tabhost le agrego un boton para que todos los xml lo puedan usar al colocarle el oyente para dicho boton cuando corro la aplicacion me da un error que termina la ejecucion del programa, el oyente se lo pongo a todas las activitys que pertenecen la tabhost, por q lo que quiero es que si es presionado en una activity todas las demas sepan que fue presionado y el contenido que tienen vaciarlo a un archivo. Pero no se por que me marca el error sera que no se puede hacer eso.

  • http://twitter.com/JMixtli Jaime Mixtli

    Buenas tocayo, aqui escribiendote con una duda. Quiero navegar o switchear entre tres activities en un mismo tab. Me explico, en mi app una de las pestaNas es la seccion de configuracion. El layout de dicha actividad son dos botones que llevan, cada uno, a una seccion distinta de configuracion. Estuve viendo como poder hacerlo, encontre acercamientos que agregan una flag al momento de hacer el newTabSpec del tabhost, algo asi:

    spec = tabhost.newTabSpec(“pestanaConfiguracion”).setIndicator(“titulo”, res.getDrawable(R.drawable.pestana_configurar)).setContent(intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

    Y luego te dicen que desde la activity donde quieras hacer switch, agregas algo asi:

    View view1 = ((ActivityGroup) getBaseContext()).getLocalActivityManager().startActivity(titulo, new Intent(this, ActividadConfEntradas.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
    this.setContentView(view1);

    Pero truena vilmente con un error que no me dice mucho:

    01-16 14:03:58.969: E/AndroidRuntime(302): FATAL EXCEPTION: main
    01-16 14:03:58.969: E/AndroidRuntime(302): java.lang.IllegalStateException: Could not execute method of the activity
    01-16 14:03:58.969: E/AndroidRuntime(302): at android.view.View$1.onClick(View.java:2072)


    01-16 14:03:58.969: E/AndroidRuntime(302): Caused by: java.lang.reflect.InvocationTargetException
    Adivina en que linea… View view1 = ((ActivityGroup). Sugerencias para hacer switch entre actividades que se muestran en un tab??? Saludos

    Jaime

  • yhon

    hola amigo me encta tus tutoriales sigue adelante mi hermano y gracias por compartirlo

  • bto

    yo ando haciendo una aplicacion en la cual tengo un tabhost con listas de datos y un action bar en el cual tengo metodos de buscar, borrar, etc y dependiendo de el tab en el que esta es lo que elimina o modifica, son muchos datos por eso lo estaba haciendo de esta manera, si alguien conoce una mejor idea es bienvenida. la idea es hacerlo para tablets y celulares de pantallas grandes ya que son muchos datos , por eso lo ago de 3.0 en adelante.

  • Jonathan

    Buenas! me gustaria saber como cambio de color las letras del tab! muchisimas gracias :D

  • José Luis

    Muy buen artículo. He utilizado partes de tu código.
    Haces magia.

    Gracias.

  • karloxcm

    Hola muy buenas, me gustaría saber como modificar el ancho de cada una de las pestañas, si eso se puede claro, muchisimas gracias

  • http://www.facebook.com/francisco.nunezhernandez.73 Francisco Nuñez Hernandez

    Hay Chamacos, “deprecated” no quiere decir inutilizable, lo que Google quiere decir es “Ey hay una mejor forma de hacerlo…

    Fuente:
    http://stackoverflow.com/questions/10297293/andorid-how-can-i-replace-the-deprecated-tabhost

  • Julio

    ¿Me podrias explicar como cambiaste el color al texto de cada pestaña?

  • chocolotrocolo

    Hola, muy buenas.
    Mi app se abre con la segunda pestaña del TabHost, y quiero que se abra con la primera. Cómo puedo hacerlo? Alguna idea?

    Gracias.

  • Ollie Strevel

    ¡Ok, muy buen tutorial!
    He probado este ejemplo en Android 4.1.2 y no consigo que las pestañas se muestren en la parte inferior de la pantalla, el codigo es indetico a tu ejemplo, no se ti tenga que ver la version de Android o el tema que estoy usando.

    Ojala me puedas responder pronto, y sigue asi, un abrazo

  • Jonathan Hernández

    Hola!!!! Muy buen tuto!! Tengo una duda ¿Se puede usar el horizontalScrollView para navegar entre pestañas?, es decir, arrastrar la pantalla para pasar a la siguiente pestaña?

  • german antonio maldo

    hola amigo me puedes compartir tu codigo, k muestras aki en tu pagina, con la llamda a url en la web k no se como hacerle, y me gustaria estudiar tu proyecto.. gracias por el aporte.. esta muy bien

  • David

    Tengo alguna duda mas o menos relacionado con el contenido de lo que se ha dado en este tutorial. Estoy aprendiendo a programar en Android y quiero que, teniendo 4 pestañas, pueda hacer clic en un boton, por ejemplo, en una de las pestañas, y se me abra otro layout). No soy capaz de conseguirlo. Se como se implementan pestañas y se como se abre un layout haciendo click sobre un boton o sobre un elemento de un listview, pero en el contexto de los tabs me es imposible. Agradeceria mucho la ayuda.

  • David

    Tengo alguna duda mas o menos relacionado con el contenido de lo que se
    ha dado en este tutorial. Estoy aprendiendo a programar en Android y
    quiero que, teniendo 4 pestañas, pueda hacer clic en un boton, por
    ejemplo, en una de las pestañas, y se me abra otro layout). No soy capaz
    de conseguirlo. Se como se implementan pestañas y se como se abre un
    layout haciendo click sobre un boton o sobre un elemento de un listview,
    pero en el contexto de los tabs me es imposible. Agradeceria mucho la
    ayuda