Я успешно преобразовал свою TabActivity в FragmentActivity, при этом содержимое вкладки представляет собой фрагменты. У меня две проблемы:
Каждая из моих вкладок содержит EditText. Когда я меняю значение EditText на TAB1, переключаюсь на TAB2, а затем снова переключаюсь на TAB1, значение EditText сбрасывается.
Если начать новую активность с одной из моих вкладок Fragments, а затем вернуться к существующей FragmentActivity, содержимое вкладки исчезнет. Изначально у меня была эта проблема при использовании TabHost, поэтому я потратил время, чтобы преобразовать все во фрагменты...
Что касается № 1, я предполагаю, что проблема связана с saveInstanceState. Я следовал примеру от Google точно, используя следующее в onCreate() моей FragmentActivity:
initialiseTabHost(savedInstanceState);
if (savedInstanceState != null) {
mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
}
Кроме того, вот мой метод onSaveInstanceState() моей FragmentActivity:
protected void onSaveInstanceState(Bundle outState) {
outState.putString("tab", mTabHost.getCurrentTabTag());
super.onSaveInstanceState(outState);
}
Вот как выглядит один из фрагментов моей вкладки:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
return (LinearLayout) inflater.inflate(R.layout.priority_boxes_tab,
container, false);
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
ArrayList<Supply> list = new ArrayList<Supply>();
// More code here
}
Должен ли я делать что-то еще? У меня есть около 15 полей EditText на экране. Нужно ли мне каким-то образом сохранить все эти значения и установить их так, чтобы поля заполнялись этими значениями в следующий раз?
Что касается № 2, я понятия не имею, что еще я могу сделать. У кого-нибудь есть предложения?
Спасибо!