How Android Tab Layout starts with a second tab… here is a solution to the problem.
How Android Tab Layout starts with a second tab
Hi, I’m following this graph
http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/
I want the app to start with the “Games” tab, not the “Top Rated tab”! Can you help me 🙂
Here is my code
package com.scorebeyond.android.tabswithswipeexample;
import com.scorebeyond.android.tabswithswipeexample.adapter.TabsPagerAdapter;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class MainActivity extends FragmentActivity implements TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
Tab Titles
private String[] tabs = { "Top Rated", "Games", "Movies" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Initialize
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(-1);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
on changing the page
make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
TODO Auto-generated method stub
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
On tab selected
show respected fragment view
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
TODO Auto-generated method stub
}
}
Thank you very much
Solution
You should use (at the end of your onCreate method):
action bar selectTab method uses the tab you added earlier as a parameter
or
Use Action Bar setSelectedNavigationItem Selects a label item by location
actionBar.setSelectedNavigationItem(1);