如何从onTabChanged调用setTabColor()?

时间:2011-05-24 16:26:27

标签: android android-tabhost

我想更改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

1 个答案:

答案 0 :(得分:2)

您可以设置tabHost变量final,然后您可以在OnTabChangeListener中引用它。像这样的另一个解决方案是使tabHost成为Activity的成员变量,这样你就可以随时引用它。

或者,如果您使用TabActivity,则可以随时致电getTabHost()