kotlin recyclerview显示sqlite父子表数据

时间:2018-09-28 23:37:25

标签: android sqlite android-recyclerview kotlin

我们的问题是关于数据库设计或如何在recyclerview小部件中查看父表和子表?

这是我们想要的视图

产品
西红柿
鳄梨

LIQUOR
啤酒

“部门”表模型看起来像是“父母”

class ViewDeptModel {
var idD:Int = 0
var dept:String = ""

} Item表模型与IT IS THE CHILD相同

class ViewItemModel {
var idI:Int = 0
var item:String = ""

} 因此,为了在recyclerview中查看数据,我们考虑使用此模型

data class ParentModel (
    val title : String = "",
    val children : List<ViewItemModel>

因此显示第一个部门,然后显示相应的子项
我们如何知道与父(系)相关的孩子何时结业?
因此,下一个父级将与其子级一起显示

如果我们给子表一个引用父ID的外键,这将阻止使用JOINS和UNIONS

因此,在下面的此链接中,像4岁的Java代码一样,查看For Next Loop
LINK

我们有些地方不知道该放置一些代码了。在ViewActivity中显示数据。我们是否将In action收集数据代码添加到ViewActivity? 好像是它自己的类
我们假设For Next循环进入ViewActivity。 这段代码的工作方式是我们真正迷失的地方!

@model IEnumerable<ProductUserViewModel>

foreach(模型中的可变项) {    

  • @ item.User.Name
  •    foreach(项目中的var product.Products)    {      
  • @ product.Name
  •    } }

    如果我们需要放弃第三个模型的想法,而对于下一个循环,我们很乐意倾听

    1 个答案:

    答案 0 :(得分:0)

    假定可以按照以下格式从数据库中加载所有数据:

    部门:

    (5, 10)
    (3.5, 6.0)
    

    项目:

    data class Department(val id: Int, val title: String, val children: ArrayList<Item>)
    

    可以计算列表中各部门的职位。例如,第一个部门的索引为0,第二个部门的索引为data class Item(val id: Int, val title: String) ,依此类推。

    完整代码:

    departments.get(0).children.size + 1