экран регистрации экран входа в систему Я реализовал экран аутентификации, содержащий фрагменты (loginFragment, SignUpFramgent), используя viewpager, SignUpFragment содержит три фрагмента для шагов регистрации, которые я хочу обработать при обратной печатикаждый из фрагментов регистрации также, когда пользователь находится в первом фрагменте регистрации и нажимает кнопку «назад» для входа в систему frag
моя активность Auth
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_authentication);
setSupportActionBar(toolbar);
//assign the views
toolbar=findViewById(R.id.authToolBar);
viewPager=findViewById(R.id.view_pager);
tableLayout=findViewById(R.id.tabLayout);
//add fragments to the adapter and attact them to viewPager
TabAdapter tabAdapter=new TabAdapter(getSupportFragmentManager());
tabAdapter.addFragment(new LoginFragment(),"Login");
tabAdapter.addFragment(new SignUpFragment(),"Sign Up");
viewPager.setAdapter(tabAdapter);
tableLayout.setupWithViewPager(viewPager);
}
@Override
public void onBackPressed() {
switch (viewPager.getCurrentItem()){
case 0:
finish();
return;
case 1:
viewPager.setCurrentItem(0);
return;
}
super.onBackPressed();
}
}
мой фрагмент подписи
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_sign_up, container, false);
//assign the views
button=view.findViewById(R.id.btn_sign_up);
stateProgressBar=view.findViewById(R.id.your_state_progress_bar_signUp);
fragmentManager=getChildFragmentManager();
fragmentHelper =new FragmentHelper();
//default fragment is PersonalInfoFragment
if (savedInstanceState==null){
fragment=new PersonalInfoSignUpFragment();
fragmentHelper.setFragment(fragment,R.id.sign_up_container,fragmentManager,"personal");
stateProgressBar.setStateDescriptionData(descriptionData);
stateProgressBar.setCurrentStateNumber(StateProgressBar.StateNumber.ONE);
}
button.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
progressNumber=stateProgressBar.getCurrentStateNumber();
//on click next move to next step until the last redirect to the mainActivity
if (v.getId()==R.id.btn_sign_up){
switch (progressNumber){
case 1:
fragment=new ContactSignUpFragment();
fragmentHelper.setFragment(fragment,R.id.sign_up_container,fragmentManager,"contacts");
stateProgressBar.setCurrentStateNumber(StateProgressBar.StateNumber.TWO);
return;
case 2:
fragment=new ShopSignUpFragment();
fragmentHelper.setFragment(fragment,R.id.sign_up_container,fragmentManager,"shop");
stateProgressBar.setCurrentStateNumber(StateProgressBar.StateNumber.THREE);
return;
case 3:
Intent intent=new Intent(getActivity(),MainActivity.class);
startActivity(intent);
getActivity().finish();
return;
}
}
}
}