我正在尝试创建一个帮助方法,该方法将以generic方式遍历所有Bundle对象。如何遍历所有Bundle对象
通过“通用”我的意思是:
- 并不需要知道在捆绑的对象的名称(键)作为参数传递。
- 如果未来将其他成员(密钥)添加到Bundle中,则不需要更改。
到目前为止,我想出了以下大纲来实现这一目标:
private void bundleToSharedPreferences(Bundle bundle) {
Set<String> keys = bundle.keySet();
for (String key : keys) {
Object o = bundle.get(key);
if (o.getClass().getName().contentEquals("int")) {
// save ints
}
else if (o.getClass().getName().contentEquals("boolean")) {
// save booleans
}
else if (o.getClass().getName().contentEquals("String")) {
// save Strings
}
else {
// etc.
}
}
}
请问这种做法意义可言?
有没有更好的方法来完成这个?
我不认为这个设计有任何意义。您的首选项和捆绑包中的内容不应始终进入捆绑包,因为您需要将特定的密钥映射到首选项中。这些通过密钥来标识,您应该对其进行硬编码。 – JoxTraex 2012-08-10 17:15:07
我认为你是对的。但是有没有任何**理智的方法可以将Bundle保存到(本地)永久存储中? – ateiob 2012-08-10 17:20:30
尝试使用SQLite数据库。 – JoxTraex 2012-08-10 17:21:57