2010-05-29 10 views
13

Meine Anwendung muss Registerkarte Indikator dynamisch aktualisieren, ich versuche dies durch Aufruf von TabSpec.setIndicator(), aber es funktioniert nicht. Hier ist mein Code:Tabulatorindikator dynamisch in Android ändern

In onCreate Verfahren TabActivity:

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

Jetzt muss ich Registerkarte Anzeige beispielsweise auf eine andere Zeichenfolge ändern, zu "xyz"

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

Aber es doesn‘ t arbeiten. Also würde ich gerne wissen, wie Tab-Indikator zu ändern, nachdem es zum Tabhost hinzugefügt wurde? Danke vielmals.

Lösung

Dank @CommonsWare, ich es von TabWidget.getChildAt verwenden, hier ist mein Code für Ihre Bequemlichkeit:

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

kann ich die Bildanzeige ändern diese Weise? – keen

Antwort

13

ich für meine frühere falsche Antwort entschuldigen, jetzt gelöscht .

Versuchen Sie, getChildViewAt() auf TabWidget zu verwenden.

+0

Wie kann ich das Bildsymbol der Tableiste ändern? – keen

7

Ich verwaltete mit getChildTabViewAt(tabId) anstelle von childviewAt(id) für mehrere Registerkarte.

1

Try this:

TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title); 
Verwandte Themen