Ich bin neu in Android App Entwicklung und ich arbeite derzeit an einem Projekt, NavigationDrawer mit TabBarLayout haben. Mein Problem ist, dass ich ein Fragment hatte aus zwei Schaltfläche Login und Registrierung:viewpager.setCurretntItem() at button onClickListener
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();
}
});
Jetzt, wenn ich bei der Anmeldung klicken oder die Taste Tabbar Layout geöffnet registrieren. Nun möchte ich, dass, wenn ich auf Login-Schaltfläche klicken, Login-Fragment im Tabbar-Layout angezeigt wird, und wenn ich auf Register-Schaltfläche klicken, Registrierung Fragment ist in der Tableiste geöffnet.
ich dafür und viewpager.setCurrentItem
auf Google-Suche auch finden, aber ich bin nicht in der Lage, dass ähnliche
ich für meine Anforderung
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;
}
}
verwenden verwenden Sie mir bitte einige Logik andeuten, das zu tun ... Danke im Voraus ...
und wie für die Schaltfläche diese bool true – Manish
zu berücksichtigen ist, dass Ihr logic.Say für Login butto ist n Sie setzen den Booleschen Wert auf true und für die Registrierung auf false. Überprüfen Sie dann den booleschen Wert und starten Sie den entsprechenden viewpager-Eintrag. – kgandroid
danke für deine antwort, aber ich frage login und register taste sind in einer anderen fragmentseite und wie ich mein tabbar layout sagen, welche taste geklickt ist, um bestimmte login oder registrieren seite .... – Manish