在Android应用中存储常量对象列表的最有效方法是什么?我想在json / database中提供对象,显示对象列表,并将它们之一放到两个活动中-一个包含它们的列表,第二个包含动态片段。在从json到Appd的第一顿午餐中解析是一个好主意,或者更好的方法是每次从本地数据库获取所有对象列表?
答案 0 :(得分:0)
基于您的数据,两种解决方案都不错,您可以在应用中使用SharedPreference或SQLite数据库,但是如果您的数据不是那么复杂或太大,我建议您使用SharedPreference和Google Gson库将ArrayList转换为String和将结果保存到SharedPreference中,并将保存的数据转换为ArrayLists(我将数据保存在我的所有项目中,并且效果很好),使用SQLite比使用SharedPreference困难,但是在处理大数据或复杂数据时有一些好处。
答案 1 :(得分:0)
如果数据不是太复杂并且对象也不太多,您也可以将它们放在静态类中。
public class Data {
public static List<Data> DATA = new ArrayList<>() {{
add(new Data("Foo", 42, 3.1415)),
add(new Data("Bar", 123, 2.718))
}};
public String string;
public int i;
public double d;
public Data(String string, int i, double d) {
this.string = string;
this.i = i;
this.d = d;
}
}
并像这样使用它:
...
for(Data d : Data.DATA) {
System.out.println(d.string);
}
答案 2 :(得分:0)
您可以使用sqlite数据库并使用Room。它非常整洁,具有良好的可读性,并且不需要花费很长时间即可在您的项目中实现。有人可能会认为,从最佳实践的角度出发,将您描述的数据放在本地数据库中而不是使用共享首选项会更合适。