Pestañas en Android usando Eclipse, Segunda Parte

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.

 

 

45 Comments


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

    Igualmente me ha parecido muy bueno el tuto

    Gracias!

    Reply

    1. 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

      Reply

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

        Reply

  2. 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.

    Reply

    1. 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

      Reply

      1. 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.

        Reply

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

          Reply

        2. Que tal! Muchas gracias justo lo que menciono perico es lo que estaba buscando y lo hice de manera muy sencilla gracias a las respuestas para él, lo hice con SharedPreferences, jeje, salu2! y gracias

          Reply

  3. 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

    Reply

    1. 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

      Reply

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

        saludos

        Reply

  4. 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?

    Reply

    1. 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.

      Reply

      1. 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.

        Reply

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

    Reply

    1. 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

      Reply

    2. 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.

      Reply

    3. 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–

      Reply

  6. 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.

    Reply

  7. 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.

    Reply

  8. 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.

    Reply

    1. 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.

      Reply

  9. 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”
    };

    }

    Reply


  10. 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…..

    Reply

  11. 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.

    Reply

    1. 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

      Reply

  12. 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.

    Reply

  13. 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

    Reply

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

    Reply

  15. 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.

    Reply

  16. Buenas! me gustaria saber como cambio de color las letras del tab! muchisimas gracias 😀

    Reply

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

    Gracias.

    Reply

  18. 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

    Reply

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

    Reply

  20. 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.

    Reply

  21. ¡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

    Reply

  22. 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?

    Reply

  23. 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

    Reply

  24. 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.

    Reply

  25. 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

    Reply

  26. Hola! queria preguntarte como lograr que cuando inicie la aplicación arranque desde el segundo tabhost como lo tiene whats app! gracias !!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *