我正在创建一个 Android 应用程序,其活动由静态视图和动态创建的视图混合而成。该活动包含保存在 XML 文件中的 UI 元素和基于模型类的内容动态创建的 UI 元素。(如在我的模型类中有一个数组,将为数组中的每个元素创建一个 EditText .. 并且将创建一个 Spinner 包含不同数组中的每个元素)
当涉及到动态创建的 UI 元素时,保存和恢复应用程序状态的常用方法是什么?因为我不会总是知道任何时候会存在哪些 UI 元素!目前,我的绑定代码只是在设备方向更改时重新加载数据库中的数据,从而丢失用户所做的任何更改。
为此,我在 Google/SO 上进行了仔细查看,但没有发现与此问题相关的任何内容。
谢谢大家
编辑: 对于将来遇到这种情况的任何人,我对 Yakiv 的方法做了一个稍微修改的版本,并得出了这个结论:
for (int i = 0; i < views.size(); i++) {
View currentView = views.get(i);
if (currentView instanceof CheckBox) {
outState.putBoolean("VIEW"+i, (((CheckBox) currentView).isChecked()));
} else if (currentView instanceof EditText) {
outState.putString("VIEW"+i, ((EditText) currentView).getText().toString());
} else if (currentView instanceof Spinner) {
//.....etc. etc.
}
}
再次感谢 Yakiv 的好主意。