2011-06-22 68 views
5

我在設置我從XML文件中填充的選項卡上的內容時遇到問題。Android:如何動態更改虛增標籤內容?

我做添加標籤到我的TabHost(「標籤」)動態如下:

 TabSpec passSpec = tabs.newTabSpec("Pass Tab"); 
     passSpec.setIndicator("Passengers", getResources().getDrawable(R.drawable.tab_message)); 

     passSpec.setContent(new TabHost.TabContentFactory() { 
      public View createTabContent(String tag) { 
       View layout = mInflater.inflate(R.layout.tab_content_passengers, null);     
       return(layout); 
      } 
     }); 
     tabs.addTab(passSpec); 

這工作得很好......什麼我在使用後正在改變該選項卡上的內容的麻煩上。沒有任何方法可以實現這一點,而無需使用全新佈局重新填充所有選項卡?

我嘗試以下,並沒有任何反應:

mInflater = LayoutInflater.from(this); 
    View layout = mInflater.inflate(R.layout.tab_content_passengers, null); 
    TextView t = (TextView) layout.findViewById(R.id.testText); 
    t.setText("Hello world??"); 

回答

4

你可以保持到layout變量的引用(也許在地圖或其他東西),然後編程方式稍後修改它像這樣:

tabMap.get(tabId).findViewById(R.id.testText).setText("The text is changed now!"); 

只要您在UI線程上執行,更改應立即反映出來。

+0

太棒了,謝謝,我知道這只是一個愚蠢的範圍問題 – TomBomb

0

嘗試做

t.invalidate(); 

這應該迫使它重新繪製