TabLayout without using ViewPager
I found setOnTabSelectedListener
:
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { if(tabLayout.getSelectedTabPosition() == 0){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 1){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 2){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 3){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 4){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } });}
An alternative solution to the accepted answer using Tab.getPosition
rather than TabLayout.getSelectedTabPosition
method.
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { Toast.makeText( MainActivity.this, "Tab " + tab.getPosition(), Toast.LENGTH_LONG ).show(); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { }});