Я успешно преобразовал свою TabActivity в FragmentActivity, причем содержимое вкладки - это фрагменты. У меня две проблемы:
Каждая из моих вкладок содержит EditText's. Когда я изменяю значение EditText на TAB1, переключаюсь на TAB2, а затем снова переключаюсь на TAB1, значение EditText сбрасывается.
Если начать новое действие с одного из фрагментов моей вкладки, а затем вернуться к существующему действию 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, я понятия не имею, что еще я могу сделать. У кого-нибудь есть предложения?
Спасибо!