0

Android : How to show specific tabs on startup of app, Example if current month is October, it must be show 10th tab, and if current month is february then it must be show 2nd Tab.. Thanks in advance.

public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFrag(new OneFragment(), "ONE");
        adapter.addFrag(new TwoFragment(), "TWO");
        adapter.addFrag(new ThreeFragment(), "THREE");
        adapter.addFrag(new FourFragment(), "FOUR");
        adapter.addFrag(new FiveFragment(), "FIVE");
        adapter.addFrag(new SixFragment(), "SIX");
        adapter.addFrag(new SevenFragment(), "SEVEN");
        adapter.addFrag(new EightFragment(), "EIGHT");
        adapter.addFrag(new NineFragment(), "NINE");
        adapter.addFrag(new TenFragment(), "TEN");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFrag(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
}
Sandy Angel
  • 157
  • 1
  • 1
  • 14
  • Possible duplicate of [Button in ViewPager scroll to specific page](http://stackoverflow.com/questions/14409556/button-in-viewpager-scroll-to-specific-page) – YLS Oct 21 '16 at 15:28
  • before asking question search on google. http://stackoverflow.com/questions/7395655/set-default-page-for-viewpager-in-android,http://stackoverflow.com/questions/14409556/button-in-viewpager-scroll-to-specific-page – YLS Oct 21 '16 at 15:30
  • Duplicate questions – Surya Prakash Kushawah Oct 21 '16 at 15:34
  • this is not duplicate question brother, it is different scenario. :) – Sandy Angel Oct 21 '16 at 21:37

2 Answers2

1

To obtain the current date you can use a Calendar

int monthNo calendar = Calendar.getInstance().get(Calendar.Month);
if(monthNo < 10) {
    viewPager.setCurrentItem(monthNo);
} else {
    // the month number is higher than the number of fragments
    // check to see what you want to do when time is in November or December
}
Iulian Popescu
  • 2,595
  • 4
  • 23
  • 31
  • adapter.addFrag(new ElevFragment(), "Eleven"); adapter.addFrag(new TwelvFragment(), "Twelve"); these two fragment also there :) – Sandy Angel Oct 21 '16 at 21:41
0

Use this code after setting adapter, pass your month value to this:

 int month = c.get(Calendar.MONTH);
 mPager.setCurrentItem(10);
YLS
  • 1,475
  • 2
  • 15
  • 35
  • This is not working even if you use `month` instead of `10` in the `setCurrentItem` method. The tabs in `ViewPager` are counted from `0`, so, when the month will be `February`, the calendar will return `1` and you will show the tab with the number `2` instead of showing the second tab. – Iulian Popescu Oct 21 '16 at 15:35