У меня есть Activity, в котором я просматриваю несколько фрагментов. В каждом фрагменте у меня есть несколько видов (EditText, ListView, Map
и т.д.).
Как сохранить экземпляр фрагмента, который отображается в этот момент? Мне нужно, чтобы он работал, когда активность onPause() --> onResume()
. Также мне нужно, чтобы он работал, когда я возвращаюсь из другого фрагмента (pop from 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();
});
}}
Я искал много информации, но ничего не понял. Может кто-нибудь дать ясное решение и пример, пожалуйста?