Когда я запускаю приложение, запускается мой первый фрагмент. В этом фрагменте я нажимаю кнопку, которая заменяет оригинальный фрагмент на новый. Когда я нажимаю на этот второй фрагмент, он не возвращается к первому, а закрывает приложение и возвращается на главный экран моего телефона. Кто-нибудь знает, почему?Возврат к предыдущему фрагменту
Вот оригинальный фрагмент, который запускается в OnCreate метод моей деятельности по:
public class Main extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LoginFragment firstFragment = new LoginFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, firstFragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
}}
Вот код для этого фрагмента, который содержит кнопку, вызывающую 2-й фрагмент:
public class LoginFragment extends Fragment implements View.OnClickListener {
private FragmentTransaction ft;
private Button registerButton;
public LoginFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_login, container, false);
registerButton = (Button)view.findViewById(R.id.register_button);
registerButton.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.register_button:{
RegisterFragment registerFragment = new RegisterFragment();
ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, registerFragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
break;
}
}
}}
2-й фрагмент, который запущен, не содержит ничего прямо сейчас. Несмотря на это, когда я нажимаю на свой телефон, когда Im во 2-м фрагменте, он не возвращается к моему первому.
Насколько я понимаю, вы забыли реализовать 'onBackPressed' метод в контейнере деятельности. См. Здесь для деталей: http://stackoverflow.com/questions/26693754/fragment-addtobackstack-and-popbackstackimmediate-not-working – thetonrifles
Вот и все! Я принимаю ваш ответ, если вы хотите перепечатать его. Благодаря! –