Java 在android中实现内部列表的最佳实践

Java 在android中实现内部列表的最佳实践,java,android,Java,Android,我是android开发的新手,所以我想征求一下关于解决下一个问题的建议 我有两个SQlite表:卡片和含义。每张卡片都有一个或几个含义。我的android应用程序应该显示一个具有真实含义的卡片列表。 我应该了解下一步操作: 添加一张有意义的新卡片 添加现有卡的含义 阅读有意义的卡片,更新,删除 据我所知,实现这一点的最佳方法是为卡片和含义制作两个内容提供商。然后我想构造一个类来封装卡的功能,并将卡放入某种适配器中。然后将适配器绑定到某种列表视图 我不确定这种方式是否是最理想的,这就是为什么任何关

我是android开发的新手,所以我想征求一下关于解决下一个问题的建议

我有两个SQlite表:卡片和含义。每张卡片都有一个或几个含义。我的android应用程序应该显示一个具有真实含义的卡片列表。 我应该了解下一步操作:

添加一张有意义的新卡片 添加现有卡的含义 阅读有意义的卡片,更新,删除 据我所知,实现这一点的最佳方法是为卡片和含义制作两个内容提供商。然后我想构造一个类来封装卡的功能,并将卡放入某种适配器中。然后将适配器绑定到某种列表视图


我不确定这种方式是否是最理想的,这就是为什么任何关于更好的方法的建议都会受到高度赞赏。

既然一张卡片可以有一个或多个含义,那么你应该使用第三个表,我们称之为CardMeansions,它有两列。卡片的唯一ID和含义的唯一ID。此表的每一行代表一张卡片和一种含义的独特组合

Card      Meaning
  1          1
  1          3
  1          4
  2          7
  3          3
  3          4
然后使用一个适配器来管理该表,该表具有关系的逻辑视图和仅对适配器可用的低级方法,以保持完整性。例如,如果你删除一张卡片,会发生什么?通常,您会使用给定的卡ID删除卡和CardMeansions表中的所有行,但让单个适配器执行此操作并管理所有三个表


关键的一点是,适配器的整个要点是将物理视图3表转换为逻辑视图卡及其含义。您的活动代码应该只处理逻辑视图,而适配器应该是处理物理视图的唯一对象。

据我所知,如果卡和含义之间存在多对多关系,那么这种方法是很好的。当我们的一对多关系不那么复杂时,这种方法更好吗?每张牌至少有一个意思。每个意思都有一个独特的父代?不,你是对的。如果一个意思只有一张母卡,那么你不应该这样做。但是,您仍然应该只使用一个适配器,因为您表示的是一个真实世界的概念—一个具有一个或多个唯一含义的卡,其中每个含义都有0或1个具有一个逻辑概念的父卡—表中表示该真实世界概念的行。