Я хотел изменить фон виджета вкладки Android. Поэтому я использовал этот код
public static void setTabColor(TabHost tabhost) {
for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) {
tabhost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#FFFFFF")); //unselected
}
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(Color.parseColor("#000000")); // selected
}
Чтобы изменить цвет каждой вкладки, мне пришлось реализовать onTabChangedListener
на объекте класса TabHost
.
tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
public void onTabChanged(String tabId) {
}
});
Теперь, мой вопрос: как я могу вызвать метод setTabColor()
из onTabChanged
, когда у меня нет объекта TabHost
для передачи в качестве параметра?
Вы можете установить переменную tabHost
final
, затем вы можете ссылаться на нее внутри OnTabChangeListener. Другим решением, подобным этому, было бы сделать tabHost
переменную-член вашей Activity, поэтому вы можете ссылаться на нее в любое время.
В качестве альтернативы, если вы находитесь в TabActivity, вы можете в любое время вызвать getTabHost()
.
getTabHost()
. Спасибо!