如何在Android应用程序中存储对象列表?

如何在Android应用程序中存储对象列表?,android,Android,在Android应用程序中存储常量对象列表最有效的方法是什么?我想在json/数据库中提供对象,显示对象列表,并将其中一个放在两个活动中——一个包含对象列表,另一个包含动态片段。第一次应用午餐时从json解析到SharedReference是个好主意,或者更好的方法是每次从本地数据库获取所有对象列表?基于您的数据,两种解决方案都很好,您可以在应用程序中使用SharedReference或SQLite数据库,但如果您的数据不太复杂或太大,我建议您使用SharedReference和Google G

在Android应用程序中存储常量对象列表最有效的方法是什么?我想在json/数据库中提供对象,显示对象列表,并将其中一个放在两个活动中——一个包含对象列表,另一个包含动态片段。第一次应用午餐时从json解析到SharedReference是个好主意,或者更好的方法是每次从本地数据库获取所有对象列表?

基于您的数据,两种解决方案都很好,您可以在应用程序中使用SharedReference或SQLite数据库,但如果您的数据不太复杂或太大,我建议您使用SharedReference和Google Gson库将ArrayList转换为字符串,并将结果保存在SharedReference中,并将保存的数据转换为ArrayList(我正在所有项目中保存数据,效果非常好),使用SQLite比SharedReference更难,但它在处理大数据或复杂数据时有一些好处。

如果数据不太复杂,对象也不太多,也可以将它们放在静态类中

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;
    }
}

您可以使用sqlite数据库并使用它。它非常整洁,具有良好的可读性,并且在项目中实现不需要那么长时间。有些人可能会认为,从最佳实践的角度来看,将您描述的数据放在本地数据库中而不是使用SharedReference更合适

这取决于你们想对这些对象做什么,以及它们是静态的还是变化的。我只想用它来显示对象的特定片段。对象和列表将是静态的。此数据的结构是否相同?告诉我这些物体是复杂的还是简单的。如果数据很复杂,我建议使用数据库(例如SQLite),如果数据结构简单(没有引用),那么使用SharedReferences,因为读取速度更快。但是如何向应用程序提供数据呢?列表必须包含55个小对象和六个字段。当用户安装应用程序时,是否希望这些数据出现在应用程序中?是的,完全正确。我想在.apk内脱机提供这些数据。为此,您可以将数据作为字符串保存在assets文件夹中的文本文件中,从用户打开应用程序后,您可以将该文件作为字符串文件读取,并使用Gson库将其转换为json,并将其保存在SharedReference.55对象中,其中包含六个字段。我不知道是否为他们使用静态类,如果好考虑写干净和良好的代码。
...
for(Data d : Data.DATA) {
    System.out.println(d.string);
}