2012-04-19 2 views
0

Я добавляю Views (not Activities) к TabActivity по требованию (что означает, что активность может иметь ноль или больше вкладок после того, как onCreate завершен). С течением времени больше вкладок добавляются, теперь мне нужно сохранить их разумным способом, чтобы впоследствии я смог их восстановить. Я попытался использовать saveHierarchyState и т. Д. Для отдельных представлений, но они восстанавливаются без данных из editTexts и т. Д.Android TabActivity и динамическая проблема с ориентацией экрана Tabs

Так что, учитывая, что у меня есть HashMap в действии, который отображает от таблиц к представлениям, как вы сохраните эти данные и восстановить его?

ответ

0

Хорошо, я получил его :)

Сначала я подумал, что мне нужно, чтобы установить идентификаторы соображений, как описано here - с помощью этого подхода Android способен восстановить вид состояние. Но поскольку мои динамические вкладки используют представления из одного и того же макета, все их дети имеют одинаковые идентификаторы, поэтому андроид перезапишет данные (состояние сохраняется в разреженном массиве в соответствии с идентификатором вида, поэтому идентификаторы должны быть уникальными) и все взгляды выглядят одинаково. Я установил, что вручную сохранение состояния моих взглядов и повторный его с помощью:

SparseArray<Parcelable> container = new SparseArray<Parcelable>(); 
saveHierarchyState(container); 
b.putSparseParcelableArray("state", container); 
restoreHierarchyState(b.getSparseParcelableArray("state")); 

Хотя этот подход работает, я до сих пор выяснить, могу ли я позволить Android делать всю работу, не устанавливая идентификаторы соображений в XML-файл макета (если это разрешено/возможно).

 Смежные вопросы

  • Нет связанных вопросов^_^