2010-05-31 11 views
9

Tengo un TabActivity y voy a tener 3 o 4 pestañas.Actualizar pestañas de la actividad de una pestaña en un Android TabHost

En TabA, me gustaría tener un ExpandableListView, que enumerará los productos. Me gustaría que TabC actúe como una especie de "carrito de compras", probablemente con un ListView de sí mismo.

¿Hay alguna manera de interactuar con el TabHost de la Actividad? Me gustaría poder hacer clic en un botón dentro de TabA y actualizarlo y cambiar a TabC. es posible? ¿Puedo obtener las actividades de Tab llamando a los métodos de sus padres?

Respuesta

16

Si implementa sus pestañas como vistas, en lugar de actividades individuales, esto sería mucho más simple, ejecutar más rápido, ocupar menos memoria y ser una mejor solución en mi humilde opinión.

Dicho esto, en la pestaña A Activity, llame al getParent() para obtener el TabActivity. Entonces, puede usar los métodos señalados por disretrospect.

+5

+1 para el getParent() de punta - aunque no entiendo la recomendación de usar vistas en lugar de actividades. Prefiero las actividades para separar los ciclos de vida y también para separar el código que pertenece a cada pestaña. – FrVaBe

+0

@K. Claszen: "separar los ciclos de vida": sus ciclos de vida no están separados. "también para separar el código que pertenece a cada pestaña": la separación de código en forma de archivos de clase Java ha existido por 15 años. No necesita usar actividades separadas para esto. – CommonsWare

+1

Gracias por la respuesta. Como observo, los métodos del ciclo de vida de las actividades (onCreate, etc.) solo se invocan si se selecciona la pestaña asociada. Y me gusta poder ampliar actividades proporcionadas como 'ExpandableListActivity' en una pestaña. Sin embargo, ambas posibilidades se brindan y dependen del requerimiento, así que me pregunté si podría haber una recomendación general. – FrVaBe

1
  1. En su actividad, utilice getParent() para obtener la matriz TabActivity
  2. En su clase de TabActivity, utilice getLocalActivityManager(). GetActivity (tabid) para obtener el objeto Actividad
  3. llamada al método del objeto Actividad
+0

¿qué tal obtener la vista en esa Actividad n. ° 3 – Mikey

3

Trate de utilizar este código para cambiar la actividad dentro de una pestaña:

TabActivity parent = (TabActivity) getParent(); 
TabHost tabhost = parent.getTabHost(); 
tabhost.setCurrentTab(0); 
Cuestiones relacionadas