Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Tab Help. How to set 2nd tab as default when app opens?

I have created an app with 3 tabs. The app works fine but I want the 2nd tab to be selected and loaded when the app opens. How can I set that?

Here is my code :

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabHost tabHost = getTabHost();



        // Tab for Home
        TabSpec homespec = tabHost.newTabSpec("Home");
        // setting Title and Icon for the Tab
        homespec.setIndicator("Home",getResources().getDrawable(R.drawable.icons_home_tab));
        Intent photosIntent = new Intent(this, HomeActivity.class);
        homespec.setContent(photosIntent);

        // Tab for Child
        TabSpec childspec = tabHost.newTabSpec("Child");
        childspec.setIndicator("Child",getResources().getDrawable(R.drawable.icons_child_tab));
        Intent homeIntent = new Intent(this, ChildActivity.class);
        childspec.setContent(homeIntent);

        // Tab for Account
        TabSpec accspec = tabHost.newTabSpec("Account");
        accspec.setIndicator("Account",getResources().getDrawable(R.drawable.icons_account_tab));
        Intent accIntent = new Intent(this, AccountActivity.class);
        accspec.setContent(accIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(homespec); // Adding home tab
        tabHost.addTab(childspec); // Adding child tab
        tabHost.addTab(accspec); //Adding account tab
        }
like image 507
Praneeb Karat Avatar asked Apr 18 '13 06:04

Praneeb Karat


People also ask

How do I add tabs in programmatically?

addTab(Tab tab): This method is used to add a tab in the TabLayout. By using this method we add the tab which we created using newTab() method in the TabLayout. The tab will be added at the end of the list and If it is the first tab to be added then it will become the selected tab.


3 Answers

Use this method to set the current tab after you added tab in tabHost

tabHost.setCurrentTab(1);  // here pass the tab index its starting from 0
like image 116
Pratik Avatar answered Nov 14 '22 22:11

Pratik


use tabHost.setCurrentTab(1); in your onCreate

like image 36
stinepike Avatar answered Nov 14 '22 23:11

stinepike


public override void OnResume() 
    {
        base.OnResume();
        tabHost.CurrentTab = 1; //index of the tab you want to set to default.
    }

Override the OnResume() and assign the CurrentTab property of tabHost to the index of the tab you want to.

like image 26
Jay kashyap Avatar answered Nov 14 '22 21:11

Jay kashyap