代码之家  ›  专栏  ›  技术社区  ›  ZelluX

在Android中动态修改标签指示器

  •  13
  • ZelluX  · 技术社区  · 14 年前

    我的应用程序需要动态更新标签指示器,我正试图通过调用tabspec.setIndicator()来实现这一点,但它不起作用。这是我的代码:

    在创建tabActivity方法中:

    tabHost = getTabHost(); 
    TabSpec tabSpec = tabHost.newTabSpec("abc");
    tabSpec.setIndicator("helloabc");
    tabSpec.setContent(new MyViewFactory());
    tabHost.addTab(tabSpec);
    

    现在,我需要将制表符指示器更改为另一个字符串,例如,“xyz”

    TabSpec tabSpec = MyTabActivity.getTabSpec();
    tabSpec.setIndicator("xyz");
    

    但它不起作用。所以我想知道如何在标签指示器添加到tabhost之后更改它?多谢。

    解决方案

    感谢@commonware,我使用tabwidget.getchildat制作了它,以下是我的代码,方便您使用:

    TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title)
    title.setText("xyz");
    
    3 回复  |  直到 11 年前
        1
  •  13
  •   CommonsWare    14 年前

    我为之前的错误回答道歉,现在被删除了。

    试用使用 getChildViewAt() TabWidget .

        2
  •  7
  •   DaveShaw Thishin    12 年前

    我管理 getChildTabViewAt(tabId) 而不是 childviewAt(id) 对于多个选项卡。

        3
  •  1
  •   princepiero    11 年前

    试试这个:

     TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);