I am new to android app development and i am currently working on a project that have NavigationDrawer with TabBarLayout. My problem is that i had a fragment consisting of two button Login and register:
lgn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentManager=getActivity().getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView,new TabFragment()).addToBackStack(null).commit();
}
});
rgst.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentManager=getActivity().getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView,new TabFragment()).addToBackStack(null).commit();
}
});
Now if i click on login or register button tabbar layout open. Now i want that if i click on login button , login fragment is show in tabbar layout and if i click on register button , register fragment is open in tabbar.
I also search on Google for that and find viewpager.setCurrentItem
but i am unable to use that for my requirement
i use like this
public class TabFragment extends Fragment {
public static TabLayout tabLayout;
public static ViewPager viewPager;
public static int int_items = 2 ;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View x=inflater.inflate(R.layout.tab_layout,null);
tabLayout=(TabLayout)x.findViewById(R.id.tabs);
viewPager=(ViewPager)x.findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
viewPager.setCurrentItem(1); //here i am unable to decide how to open specific fragment
tabLayout.post(new Runnable() {
@Override
public void run() {
tabLayout.setupWithViewPager(viewPager);
}
});
return x;
}
class MyAdapter extends FragmentPagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position)
{
case 0: return new Login();
case 1: return new Registration();
}
return null;
}
@Override
public int getCount() {
return int_items;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position)
{
case 0:
return "Login";
case 1:
return "Registration";
}
return null;
}
}
please hint me some logic to do that ...thanks in advance...