У меня есть одно действие, которое запускает фрагмент. Я открываю свой ящик навигации и перехожу ко второму фрагменту в ту же самую активность. Я вращаю устройство и вместо того, чтобы оставаться на этом втором фрагменте, я возвращаюсь к первому. Как вы можете сохранить текущий фрагмент, на котором вы находитесь, чтобы при уничтожении Activity он открыл соответствующий фрагмент? Вот что я пробовал, но он не работает. Это в моей деятельности:Сохранить текущий фрагмент в onSaveInstanceState
private FragmentTransaction ft;
private Fragment fragment;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page);
if (findViewById(R.id.fragment_container) != null) {
if (savedInstanceState != null) {
fragment = getFragmentManager().getFragment(savedInstanceState,"currentFrag");
ft.replace(R.id.fragment_container, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}else{
fragment = new HomeFragment();
// In case this activity was started with special instructions from an
// Intent, pass the Intent's extras to the fragment as arguments
fragment.setArguments(getIntent().getExtras());
// Add the fragment to the 'fragment_container' FrameLayout
getFragmentManager().beginTransaction()
.add(R.id.fragment_container, fragment).commit();
}
}
.....
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getFragmentManager().putFragment(outState, "currentFrag", fragment);
}
Это исключение в моем журнале кошки
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.FragmentTransaction android.app.FragmentTransaction.replace(int, android.app.Fragment)' on a null object reference
Очевидно, что текущий фрагмент не сохраняется. Как правило, это правильный способ решить эту проблему?
Этот вопрос не имеет ничего общего с общим пониманием того, что такое NullPointerException, а скорее как сохранить состояния фрагмента при повороте экрана.
? Этот вопрос не имеет ничего общего с общим пониманием того, что такое NullPointerException, а скорее как сохранить состояния фрагмента при повороте экрана. –