Android - сохранить / восстановить состояние фрагмента
У меня есть активность, в которой я прохожу несколько фрагментов. В каждом фрагменте у меня есть несколько просмотров (EditText, ListView, Map
, так далее).
Как я могу сохранить экземпляр фрагмента, который показан в этот момент? Мне нужно, чтобы это работало, когда активностьonPause() --> onResume()
, Также мне нужно, чтобы это работало, когда я возвращаюсь из другого фрагмента (щелчок из backstack).
От основногоActivity
Я называю первый фрагмент, а затем фрагмент, который я называю следующим.
Код для моей активности:
public class Activity_Main extends FragmentActivity{
public static Fragment_1 fragment_1;
public static Fragment_2 fragment_2;
public static Fragment_3 fragment_3;
public static FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
fragment_1 = new Fragment_1();
fragment_2 = new Fragment_2();
fragment_3 = new Fragment_3();
fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction_1 = fragmentManager.beginTransaction();
transaction_1.replace(R.id.content_frame, fragment_1);
transaction_1.commit();
}}
Тогда вот код для одного из моих фрагментов:
public class Fragment_1 extends Fragment {
private EditText title;
private Button go_next;
@Override
public View onCreateView(final LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_1,
container, false);
title = (EditText) rootView.findViewById(R.id.title);
go_next = (Button) rootView.findViewById(R.id.go_next);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction transaction_2 = Activity_Main.fragmentManager
.beginTransaction();
transaction_2.replace(R.id.content_frame,
Activity_Main.fragment_2);
transaction_2.addToBackStack(null);
transaction_2.commit();
});
}}
Я искал много информации, но ничего не ясно. Кто-нибудь может дать четкое решение и пример, пожалуйста?