Как вызвать setTabColor () из onTabChanged?

1

Я хотел изменить фон виджета вкладки 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 для передачи в качестве параметра?

Теги:
android-tabhost

1 ответ

2
Лучший ответ

Вы можете установить переменную tabHost final, затем вы можете ссылаться на нее внутри OnTabChangeListener. Другим решением, подобным этому, было бы сделать tabHost переменную-член вашей Activity, поэтому вы можете ссылаться на нее в любое время.

В качестве альтернативы, если вы находитесь в TabActivity, вы можете в любое время вызвать getTabHost().

  • 0
    Я искал getTabHost() . Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню