2010-05-29 50 views
13

Mi aplicación necesita actualizar el indicador de pestaña de forma dinámica, estoy intentando hacer esto invocando a TabSpec.setIndicator(), pero no funciona. Aquí está mi código:Modificar el indicador de pestaña de forma dinámica en Android

En el método onCreate de TabActivity:

tabHost = getTabHost(); 
TabSpec tabSpec = tabHost.newTabSpec("abc"); 
tabSpec.setIndicator("helloabc"); 
tabSpec.setContent(new MyViewFactory()); 
tabHost.addTab(tabSpec); 

ahora tengo que cambiar el indicador pestaña a otra cadena, por ejemplo, "XYZ"

TabSpec tabSpec = MyTabActivity.getTabSpec(); 
tabSpec.setIndicator("xyz"); 

Pero doesn' t trabajo. Entonces, ¿me gustaría saber cómo cambiar el indicador de pestañas después de agregarlo al tabhost? Muchas gracias.

Solución

Gracias a @CommonsWare, que hacen que sea mediante el uso de TabWidget.getChildAt, aquí es mi código para su conveniencia:

TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title) 
title.setText("xyz"); 
+0

puedo cambiar el indicador de la imagen de esta manera? – keen

Respuesta

13

Me disculpo por mi anterior respuesta incorrecta, ahora se borran .

Intente utilizar getChildViewAt() en TabWidget.

+0

¿Cómo puedo cambiar el indicador de imagen de la barra de pestañas? – keen

7

administré con getChildTabViewAt(tabId) en lugar de childviewAt(id) para varias pestañas.

1

Prueba esto:

TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title); 
Cuestiones relacionadas