这似乎应该很简单,但我无法找到方法。我需要一个选项卡有开头的文本,但是当用户从列表中选择项目后,该文本会更改。我知道如何通过
来更改选项卡的背景和颜色。mTabHost.getChildAt(index).setBackgroundColor();
但是没有选项可以更改选项卡的指示器。我尝试使用EditText。
private EditText tabName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statistics);
comm = new Communicator();
tabName = new EditText(this);
tabName.setText("BeginningText");
mTabHost = getTabHost();
mTabHost.addTab(mTabHost
.newTabSpec("tab_1_stat")
.setIndicator(User)
.setContent(R.id.meStatsTab));
mTabHost.addTab(mTabHost
.newTabSpec("tab_2_stat")
.setIndicator(tabName.getText())
.setContent(R.id.themStatsTab));
mTabHost.addTab(mTabHost
.newTabSpec("tab_3_stat")
.setIndicator("Archive")
.setContent(R.id.archiveStatsTab));
mTabHost.setOnTabChangedListener(this);
getTabWidget().getChildAt(1).setOnClickListener(new onThemTabClicked());
mTabHost.setCurrentTab(0);
onTabChanged("tab_1_stat");
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
tabName.setText("ChangedTabText");
Bundle extras = intent.getExtras();
themStats = extras.getStringArray("themStats");
mTabHost.setCurrentTab(1);
onTabChanged("tab_2_stat");
}
这种方法也不起作用,我还尝试了几种其他方法。有什么想法吗?提前感谢!
TabActivity
,则可以使用findViewById(android.R.id.title)
代替getChildAt(textIndex)
,就像这个答案中所示。 - Dheeraj Vepakomma