Android:如何动态更改膨胀的标签内容?

时间:2011-06-22 20:38:50

标签: android android-tabhost layout-inflater

我无法在我从XML文件中充气的标签页上设置内容。

我通过执行以下操作动态地将标签添加到我的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??");

2 个答案:

答案 0 :(得分:4)

您可以保留对layout变量的引用(可能在地图或其他内容中),然后稍后以编程方式修改它:

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

只要您在UI线程上执行此操作,就应立即反映更改。

答案 1 :(得分:0)

尝试

t.invalidate();

这应该强制它重绘