android - 如何使用 Proto DataStore 保存对象列表

标签 android list object datastore proto

如果我有以下类(class),如何使用 Proto DataStore 保存它的列表?

data class Tag(
    val id: int,
    val name: String
)
我看到的所有指南都在教如何只保存一个对象。是否有可能列出它?

最佳答案

您应该考虑在 Room 中存储内容列表,即使 proto-datastore 也不是存储复杂内容的合适解决方案,
如果您仍然想要,我建议您将存储的数据限制为 10-15 项
到代码--->

  • 创建你的proto文件,重复用于创建list Java 类型

  • message Student {
      string id = 1;
      string name = 2;
    }
    
    message ClassRoom {
      string teacher = 1;
      repeated Student students  = 2; // repeated => list
    }
    
    
  • 在您的原型(prototype)商店中,
  • dataStore.updateData { store ->
           store.toBuilder()
          .clearStudents() // clear previous list
          .setAllStudents(students)// add the new list
          .build()
    }
    
    
    
    如果您想查看我的示例应用程序,请阅读数据/域层
    https://github.com/ch8n/Jetpack-compose-thatsMine

    关于android - 如何使用 Proto DataStore 保存对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64430872/

    相关文章:

    Android 应用程序不会占据整个屏幕

    android - RecyclerView 过滤器不工作

    r - 如何在不丢失名称的情况下向列表中的列表添加列?

    entity-framework - 实体和对象之间有区别吗?

    python - 使用 pytest 对 Python 对象进行单元测试

    python - 如何在 __init__ 上创建 __len__ 函数?

    android - 如何将日历数据存储在数据库中

    android - 幻灯片放映图像/视频,例如 Android 中的 Whatsapp 状态?

    python - 如何对 pandas 列中的列表执行一次热编码?

    python - 如何按数字拆分列表列表?