Сохранить состояние полей во фрагменте android
Есть фрагмент, который содержит Spinner'ы и EditText'ы. Пользователь их заполняет и затем переходит на другой фрагмент для произведения некоторых действий там. Когда он возвращается обратно на первый фрагмент с данными из frag2, нужно восстановить или записать программно то, что было им введено ранее.
Делаю так:
Фрагмент 1
в onCreateView
Bundle bdReStore = getArguments();
if (bdReStore != null) {
String fs = bdReStore.getString("editTemp");
Log.i(LOG_TAG, "recieve: " + editTemp);
editTemp.setText(fs);
}
в коде перехода на frag2 (onClick реализован)
Frag1 frag1 = new Frag1();
Frag2 frag2 = new Frag2();
Bundle bundleStore = new Bundle();
if (addTask.getText().length() != 0) {
bundleStore.putString("editTemp", editTemp.getText().toString();); /** сохранить строку, если введена */
}
frag1.setArguments(bdReStore);
android.app.FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, frag2).commit();
Фрагмент 2
Frag1 frag1 = new Frag1();
Bundle bundle = new Bundle();
bundle.putInt("tag", toothCount);
frag1.setArguments(bundle);
android.app.FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, frag1).commit();
Думаю, что проблема во втором фрагменте (frag2), когда возвращаюсь на первый. Потому что здесь приходится создавать заново новый экземпляр frag1. Поэтому и null мне выводится в LogCat.
Вопрос: Что нужно изменить в коде, чтобы реализовать идею?
Предложение:
Была мысль сделать хардкод: передать из frag1 во frag2, а потом обратно из frag2 во frag1. Но думаю, что есть более гуманный способ.
myUpdate 01 Часть моего кода, которая сейчас есть рабочей.О ней я писал выше: http://pastebin.com/6cz1BL98