android - 如何存储自定义对象的数组列表?

标签 android sqlite

我创建了一个由自定义对象组成的数组列表。基本上,用户将创建一个类,每次创建一个类时,都会将一个新的 Lecture(我的自定义对象)添加到数组列表中。我需要保存生成的数组列表,以便即使在应用重新启动时也能保存用户的类。

根据我的理解,我必须使我的类可序列化。但我到底该怎么做呢?然后一旦序列化我该怎么办?

public class Lecture{

public String title;
public String startTime;
public String endTime;
public String day;
public boolean classEnabled;

public Lecture(String title, String startTime, String endTime, String day, boolean enable){
    this.title = title;
    this.startTime = startTime;
    this.endTime = endTime;
    this.day = day;
    this.classEnabled = enable;
}
//Getters and setters below

最佳答案

我在我正在开发的天气应用程序中使用了一个类...

public class RegionList extends ArrayList<Region> {} // Region implements Serializeable

为了保存我使用这样的代码...

FileOutputStream outStream = new FileOutputStream(Weather.WeatherDir + "/RegionList.dat");
ObjectOutputStream objectOutStream = new ObjectOutputStream(outStream);
objectOutStream.writeInt(uk_weather_regions.size()); // Save size first
for(Region r:uk_weather_regions)
    objectOutStream.writeObject(r);
objectOutStream.close();

注意:在编写 Region 对象之前,我编写了一个 int 来保存列表的“大小”。

当我回读时,我会这样做......

FileInputStream inStream = new FileInputStream(f);
ObjectInputStream objectInStream = new ObjectInputStream(inStream);
int count = objectInStream.readInt(); // Get the number of regions
RegionList rl = new RegionList();
for (int c=0; c < count; c++)
    rl.add((Region) objectInStream.readObject());
objectInStream.close();

关于android - 如何存储自定义对象的数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393889/

相关文章:

android - ListView中的隐藏字段传递一个变量

javascript - 将element放在Android键盘上方

java - 将数据发送到 php 脚本并通过 android 保存在 mysql 表中时,加号变为空格

android - Android 上的持久服务

mysql - MySQL 表中除了主键之外还需要单独的索引吗?

C# 和 Sqlite 字段长度

php - 如何在 PHP 中更改 PDO/SQLite 连接的字符编码?

android - SQLite 返回错误代码 14

ios - 如何在Flutter中使用sqflite插入特殊字符?

c++ - SQLite3 C++ 列值不会递增 1