2011-06-22 69 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(); 

这应该迫使它重新绘制