更改选项卡标签Android

更改选项卡标签Android,android,tabs,label,android-tabhost,Android,Tabs,Label,Android Tabhost,正如您在标题中看到的,我希望动态更改标签 在我的标签上。 问题是,我使用ta主机和tabspec创建我的选项卡,下面是一个选项卡示例: TabSpec sourceSelect = tabHost.newTabSpec("Source Select"); // setting Title and Icon for the Tab sourceSelect.setIndicator("Source Select"); final Intent selectInten

正如您在标题中看到的,我希望动态更改标签 在我的标签上。 问题是,我使用ta主机和tabspec创建我的选项卡,下面是一个选项卡示例:

    TabSpec sourceSelect = tabHost.newTabSpec("Source Select");
    // setting Title and Icon for the Tab
    sourceSelect.setIndicator("Source Select");
    final Intent selectIntent = new Intent(this, FileListActivity.class);
    sourceSelect.setContent(selectIntent);
当我过来说sourceSelect.setText(“”)时,它不会做任何事情,它会编译这些

有什么想法吗


谢谢

如果没有为选项卡指示器使用自定义布局,则必须通过选项卡小部件中的索引获取选项卡规范(基于0)。这是一个相当蹩脚的实现,但我为我的应用程序搜索了一个又一个答案,这是迄今为止唯一有效的方法:

((TextView) tabHost.getTabWidget().getChildAt(0)
            .findViewById(android.R.id.title)).setText("This sucks, I know.");
另一个选项是使用setIndicator(视图)并输入一个包含所需文本的文本视图(如果您不怕垃圾收集器)

当然,您可以将两者结合使用-如果您使用的是自定义选项卡指示器,并且其文本视图的id为,例如,R.id.text\u view\u tab:

((TextView) tabHost.getTabWidget().getChildAt(0)
            .findViewById(R.id.text_view_tab)).setText("This is still ugly and hacky, though.");

希望这有帮助。

非常感谢您的回答!不幸的是,setIndicator(View-View)方法只适用于Android 1.6及以上版本(版本4),由于Im使用的是较低版本,所以我无法使用它。您在何处定义id.text\u view\u tab或id.title以将其分配给选项卡?因为您使用的是较低版本,因此标题的id将是android.R.id.title。它是由框架本身定义的,您不需要在任何地方手动定义它,只需使用它来设置文本。android.R是系统定义的默认ID,比如如果没有为listview分配ID,可以使用findViewById(android.R.list)引用它。试试我建议的第一种方法,告诉我它是否有效-至少对我有效。。。