13

私のアプリケーションはタブインジケーターを動的に更新する必要があります。TabSpec.setIndicator()を呼び出してこれを実行しようとしていますが、機能しません。これが私のコードです:

TabActivityのonCreateメソッドの場合:

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");

しかし、それは機能しません。それで、タブホストに追加された後にタブインジケーターを変更する方法を知りたいですか?どうもありがとう。

解決

@CommonsWareのおかげで、TabWidget.getChildAtを使用して作成しました。便利なコードを次に示します。

TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title)
title.setText("xyz");
4

3 に答える 3

13

以前の間違った答えをお詫びしますが、現在は削除されています。

getChildViewAt()で使用してみてくださいTabWidget

于 2010-05-29T22:06:55.300 に答える
7

複数のタブgetChildTabViewAt(tabId)の代わりに管理しました。childviewAt(id)

于 2011-12-13T11:09:10.873 に答える
0

これを試して:

 TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);
于 2013-08-30T05:21:34.670 に答える