Android:如何动态更改填充的选项卡内容?

5

我有困难设置从XML文件中填充的选项卡上的内容。

我通过以下方式动态地将选项卡添加到我的TabHost('tabs')中:

        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个回答

4
您可以保留对layout变量的引用(可能在映射或其他数据结构中),然后以编程方式稍后修改它,如下所示:
tabMap.get(tabId).findViewById(R.id.testText).setText("The text is changed now!");

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

0

尝试去做

t.invalidate();

这应该强制它重新绘制


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接