Praveen
Praveen

Reputation: 91175

How to use TabHost.OnTabChangeListener in android?

How to use TabHost.OnTabChangeListener in android?

give me some example code... :(

thanks

Upvotes: 28

Views: 40684

Answers (3)

stevyhacker
stevyhacker

Reputation: 1877

You can use OnTabSelectedListener, here is an example.

  tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            switch (tab.getText().toString()) {
                case "yourTabTitle":
                    //todo your code
                    break;
            }
        }
        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
            switch (tab.getText().toString()) {
                case "yourTabTitle":
                    //todo your code
                    break;
            }
        }
        @Override
        public void onTabReselected(TabLayout.Tab tab) {
            switch (tab.getText().toString()) {
                case "yourTabTitle":
                    //todo your code
                    break;
            }
        }
    });

Upvotes: 0

pgsandstrom
pgsandstrom

Reputation: 14399

why it would be my pleasure to help you good sir:

myTabHost.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
    if(TAB_1_TAG.equals(tabId)) {
        //destroy earth
    }
    if(TAB_2_TAG.equals(tabId)) {
        //destroy mars
    }
}});

Where TAB_1_TAG is the tag provided to the newTabSpec method when creating the tab.

Upvotes: 76

jake_hetfield
jake_hetfield

Reputation: 3398

I think in many cases it makes sense to make your TabActivity the listener:

public class MyTabActivity extends TabActivity implements OnTabChangeListener {

    private TabHost tabHost;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /* Your onCreate code here */

        tabHost.setOnTabChangedListener(this);
    }

    /* ... */

    @Override
    public void onTabChanged(String tabId) {
        /* Your code to handle tab changes */
    }
}

Upvotes: 7

Related Questions