Как динамически изменить заголовок вкладки - PullRequest
5 голосов
/ 18 февраля 2010

У меня есть три вкладки в моем приложении. На событии под одной вкладкой я хочу изменить заголовок другой существующей вкладки. Это заголовок, который мы предоставляем при добавлении вкладок в TabHost.

Например: TabHost.addTab (tabHost.newTabSpec ("Tab2")). SetIndicator ("Мне нужно изменить динамически"). SetContent ....

В приведенном выше примере заголовок tab2, который я предоставил в setIndicator (), должен изменяться динамически.

Есть ли способ сделать это.

Ответы [ 3 ]

7 голосов
/ 19 февраля 2010

Если вы не можете найти более чистый метод, вы можете получить доступ к самому TabWidgetTabWidget содержатся относительные макеты для каждой из ваших вкладок, каждая из которых содержит ImageView и TextView.Чтобы напрямую получить доступ к текстовому представлению на вкладке с индексом 0, вы можете сделать это:

mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title);

Затем просто приведите как TextView, и вы можете редактировать его так, как хотите.Ниже работал для меня:

((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New");
3 голосов
/ 19 февраля 2010

Вместо того, чтобы устанавливать индикатор как String, используйте тот, в котором вы установите View, который будет использоваться. Затем вы можете удерживать этот View (например, TextView) и изменять его содержимое по мере необходимости.

0 голосов
/ 14 апреля 2013

Вам больше не следует использовать «TabHost» для ICS, он устарел в версии 13. Вместо этого вам нужен «ActionBar» ...

Tab mTab = super.getSupportActionBar().getTabAt(0); 
mTab.setText("new Title");

Android сразу обновит вкладку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...