-3

I want to switch from an empty activity to a Tabbed Layout activity. I used intent but it's not working, app keeps crashing. I am using a button in my main activity from where I want to jump to a LeaderBoards named tabbed activity. How to do that?

This button in main Activity:

submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            Intent intent=new Intent(game4x4.this, LeaderBoards.class);//game4x4 is the main activity
                startActivity(intent);
            }
        });

Tabbed Activity Class:

public class LeaderBoards extends AppCompatActivity {

    TabLayout tabLayout;
    ViewPager viewPager;
    int page=1;


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

        viewPager=(ViewPager)findViewById(R.id.viewpager);
        viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext()));
        viewPager.setCurrentItem(page);

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



        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener()
        {
            @Override
            public void onTabSelected(TabLayout.Tab Tab)
            {
            viewPager.setCurrentItem(Tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab Tab)
            {
                viewPager.setCurrentItem(Tab.getPosition());
            }

            @Override
            public void onTabReselected(TabLayout.Tab Tab)
            {
                viewPager.setCurrentItem(Tab.getPosition());
            }
        });
    }

    private class CustomAdapter extends FragmentPagerAdapter
    {
        private String fragments[]= {"MyScore","TopScores"};
        public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext)
        {
            super(supportFragmentManager);

        }

        @Override
        public Fragment getItem(int position) {
            switch (position)
            {
                case 0:
                    return new Fragment1();
                case 1:
                    return new Fragment2();
                default:
                    return null;

            }
        }

        @Override
        public int getCount() {
            return fragments.length;
        }

        @Override
        public CharSequence getPageTitle(int position)
        {
            return fragments[position];

        }


    }

}

Fragemt1 and Fragment2 are classes for different tabs.

2 Answers2

0

Try This way

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

  tabLayout=(TabLayout)findViewById(R.id.tablayout);

  tabLayout.setupWithViewPager(viewPager);

  viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext()));
  viewPager.setCurrentItem(page);
Akash
  • 961
  • 6
  • 15
0

Check whether "LeaderBoards" is mentioned in manifest or not.

Shalu Raj
  • 1
  • 1
  • Ok, your code seems okay so problem might be something else. Check you apk size. If it exceeds 64K, then folw this link : https://developer.android.com/studio/build/multidex.html#about – Shalu Raj Jan 20 '17 at 10:01