Ответ 1
Приносим извинения за мой ранее неверный ответ, который теперь удален.
Попробуйте использовать getChildViewAt()
в TabWidget
.
Мое приложение должно динамически обновлять индикатор вкладок, я пытаюсь сделать это, вызывая 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");
Но это не сработает. Поэтому я хотел бы знать, как изменить индикатор вкладок после его добавления в tabhost? Большое спасибо.
Решение
Благодаря @CommonsWare, я делаю это с помощью TabWidget.getChildAt, вот мой код для вашего удобства:
TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title)
title.setText("xyz");
Приносим извинения за мой ранее неверный ответ, который теперь удален.
Попробуйте использовать getChildViewAt()
в TabWidget
.
i управляется getChildTabViewAt(tabId)
вместо childviewAt(id)
для нескольких вкладок.
Попробуйте следующее:
TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);