Привет, у меня есть панель просмотра listview, и я показываю фрагменты на основе выбора пользователя в списке.
Вот как я заменяю фрагменты
public void switchFragment(Fragment fragment, boolean addBackStack) {
        try {
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            ft.replace(R.id.content, fragment);
            currentFragment = fragment;
           //if (addBackStack)
                ft.addToBackStack(null);
            ft.commit();
        } catch (Exception e) {
        }
    }
Это мой пример кода фрагмента. Теперь, когда я заменяю фрагменты, я сохраняю состояние экземпляра в onpause и восстанавливаю его в onresume, но он работает только при нажатии кнопки возврата. Когда я вручную перехожу назад к фрагменту из списка, состояние фрагмента не восстанавливается. Почему?
public class Fragment1 extends BaseFragment {   
    int currentFragmentInd = 1;  
    private Button startButton;
    private  Button endButton;
    private long savedStartTime;
    private TextView setStartText;
    private TextView setEndText;
    private String starttime;
    private String endtime;
    public int getIndex() {
        MyApplication.getApplication().setCurrentChild(0);
        MyApplication.getApplication().setCurrentGroup(0);
        return currentFragmentInd;
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (savedInstanceState !=null)
        {      
        }
    }
    @Override
    public void onResume() {
        super.onResume();
        setStartText= (TextView)getActivity().findViewById(R.id.MAtextView2);
        setEndText= (TextView)getActivity().findViewById(R.id.MAtextView3);
        setEndText.setText(endtime);
        setStartText.setText(starttime);
    }
    @Override
    public void onPause() {
        super.onPause();
        setStartText= (TextView)getActivity().findViewById(R.id.MAtextView2);
        setEndText= (TextView)getActivity().findViewById(R.id.MAtextView3);
        starttime=setStartText.getText().toString();
        endtime=setEndText.getText().toString();
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
    }
    FrameLayout frameLayout;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View contentView = inflater.inflate(R.layout.layout1, null, false);
        ((MainActivity) getActivity()).openList(0, 0);
        if (savedInstanceState == null) {
        }
        startButton= (Button) contentView.findViewById(R.id.button);
        endButton= (Button) contentView.findViewById(R.id.button2);
        endButton.setEnabled(false);
        setStartText= (TextView)contentView.findViewById(R.id.MAtextView2);
        setEndText= (TextView)contentView.findViewById(R.id.MAtextView3);
        startButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                    Time now = new Time();
                    now.setToNow();
            }
        });
        endButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                    Time now = new Time();
                    now.setToNow();
                    setEndText.setText(now.hour+" : "+now.minute);
            }
        });
        return contentView;
    }
}
