2010-02-18 82 views
5

我的應用程序中有三個選項卡。在一個Tab下的事件中,我想更改另一個現有Tab的標題。這是我們在將選項卡添加到TabHost時提供的標題。如何更改標籤的動態標籤

例如:TabHost.addTab(tabHost.newTabSpec( 「TAB2」))setIndicator( 「我需要被動態地改變」)setContent ....

在上述例子中,的標題。我在setIndicator()下提供的tab2應該動態更改。

有什麼辦法可以做到這一點。

回答

3

不是將指標設置爲String,而是使用設置要使用的View的地方。然後,您可以保留該View(例如,TextView)並根據需要更改其內容。

7

除非您可以找到更清潔的方法,否則您可以訪問TabWidget本身。 包含在TabWidget中的是每個選項卡的相對佈局,每個選項卡都包含一個ImageView和一個TextView。要直接訪問的TextView在標籤索引爲0,你可以這樣做:

mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title); 

然後只投作爲TextView您可以編輯你想要的東西。以下爲我工作:

((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New"); 
-1

你不應該使用了「TabHost」爲ICS,已在13版本而不是不贊成你需要你「動作條」 ......

Tab mTab = super.getSupportActionBar().getTabAt(0); 
mTab.setText("new Title"); 

Android會馬上刷新標籤

+0

TabHost不會被棄用!你在哪裏提出這個? – AsafK 2013-11-13 11:41:53