Динамическое изменение индикатора вкладки в Android - PullRequest
13 голосов
/ 29 мая 2010

Моему приложению необходимо динамически обновлять индикатор вкладки, я пытаюсь сделать это, вызывая TabSpec.setIndicator (), но это не работает. Вот мой код:

В методе onCreate 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");

Но это не работает. Итак, я хотел бы знать, как изменить индикатор вкладки после его добавления на вкладку? Большое спасибо.

Решение

Благодаря @CommonsWare, я делаю это с помощью TabWidget.getChildAt, вот мой код для вашего удобства:

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

Ответы [ 3 ]

13 голосов
/ 30 мая 2010

Я прошу прощения за мой ранее неправильный ответ, теперь удален.

Попробуйте использовать getChildViewAt() на TabWidget.

7 голосов
/ 13 декабря 2011

я справился с getChildTabViewAt(tabId) вместо childviewAt(id) для нескольких вкладок.

1 голос
/ 30 августа 2013

Попробуйте это:

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