gpt4 book ai didi

android - 从 Cursor 到 LinearLayout 的动态项目列表,不使用 ListView

转载 作者:搜寻专家 更新时间:2023-11-01 09:11:39 24 4
gpt4 key购买 nike

我想在列表中显示 Cursor 中的一些(5 个左右)项目,并且我想让它与游标的内容(依次指向数据库)保持同步,但我不想使用 ListView。相反,我想填充一个普通的旧 LinearLayout。

我似乎明白我需要创建一个自定义 CursorAdapter 并覆盖 newView() 和 bindView() 方法。我不明白的是,谁负责遍历游标的项目(CursorAdapter 这样做吗?我的代码应该这样做吗?),每个项目的 View 如何成为 LinearLayout 的父级以及谁负责创建新的查看游标中的新项目或删除不再通过游标可用的项目的 View ?

不知何故,我有一种预感,CursorAdapter 已经完成了大部分工作,但我无法完全拼凑出所有的拼图。我只是在 newView() 中膨胀行布局并将其直接添加到 LinearLayout 吗?如果游标不再具有关联数据,如何删除一行?

感谢您的帮助!

手册

最佳答案

好吧,我会做以下事情:

  • 创建一个自定义类,LinearLayout 的子类,只是为了简单起见。我们称它为 MyList
  • 您将 CursorAdapter 实例传递给此类(例如,创建一个 setAdapter 方法)
  • 收到适配器后,MyList 将注册数据更改 (CursorAdapter.registerDataSetObserver)。当数据集发生变化时,调用一个方法“populate”
  • 接收适配器时,同样直接调用“populate”,获取初始内容
  • 实现 MyList.populate:** 调用 removeAllViews** 对于每个项目(遍历游标)调用 addView(CursorAdapter.newView(getContext(), cursor, this))

简而言之。当然,稍后您可能想要优化它,并保留旧 View 并改用 CursorAdapter.bindView,这样您就不需要创建新的重型 Java 对象。

关于android - 从 Cursor 到 LinearLayout 的动态项目列表,不使用 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com