`
ygong
  • 浏览: 12038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CursorAdapter

 
阅读更多

一般书里面也没有介绍如何使用CursorAdapter,要定制自己的CursorAdapter, 要覆盖newView, bindView和changeCursor. 现在以ListView为例来说明:





从上面可以看出,listView不是每次都会调用newView,所以每个item的view对象只会被实例化一次。而每次要绘制item之前,一定会调用bindView。这是动态绑定。如果记录被修改了,在ListView会实时更新。如果要实现数据的延迟加载,可以在bindView中先加载,再启动后台线程加载。

对于那些不用到数据库的应用,也可以用MatrixCursor来生成cursor对象。



看这里:
http://stackoverflow.com/questions/3535074/getview-vs-bindview-in-a-custom-cursoradapter

或者去看android的CustomAdapter的源码.
CustomAdapter覆盖了BaseAdapter的getView方法,并在里面调用了newView()和bindView().所以你就知道这三个方法的调用关系了吧。

adapter的机制和list的机制有关,其实,无论你实际数据项有多少,显示在屏幕上的只有固定个数的item(取决于list的高或宽)。
在list滑动时,判断是否有Item已经滑出屏幕,滑出去的item被释放掉,加入新的item并显示。每次加入新的item就要调用getView()方法了。
打log的话,你会看到,只要你滑动的距离超过一个item项的高度,就会调用一次getView()

看这里:
http://stackoverflow.com/questions/3535074/getview-vs-bindview-in-a-custom-cursoradapter

或者去看android的CustomAdapter的源码.
CustomAdapter覆盖了BaseAdapter的getView方法,并在里面调用了newView()和bindView().所以你就知道这三个方法的调用关系了吧。

adapter的机制和list的机制有关,其实,无论你实际数据项有多少,显示在屏幕上的只有固定个数的item(取决于list的高或宽)。
在list滑动时,判断是否有Item已经滑出屏幕,滑出去的item被释放掉,加入新的item并显示。每次加入新的item就要调用getView()方法了。
打log的话,你会看到,只要你滑动的距离超过一个item项的高度,就会调用一次getView()
  • 大小: 63.1 KB
分享到:
评论

相关推荐

    CursorAdapter和ListView结合使用

    在Android开发中,ListView是用于显示大量数据列表的常用组件,而CursorAdapter则是与数据库查询结果(Cursor对象)配合使用的适配器。本篇将详细阐述CursorAdapter与ListView结合使用的核心概念、步骤以及最佳实践...

    android demo,listview,cursorAdapter的使用

    CursorAdapter是Android专门为处理数据库查询结果而设计的数据适配器,它能够有效地将SQLite数据库中的数据与ListView进行绑定。在这个"android demo,listview,cursorAdapter的使用"项目中,我们将深入探讨如何...

    Android中CursorAdapter的使用

    在Android开发中,CursorAdapter是连接数据库查询结果(Cursor对象)与ListView、GridView等视图组件的重要桥梁。它主要用于展示SQLite数据库中的数据。本篇文章将深入探讨如何在Android应用程序中有效地使用...

    AutoCompleteTextView和自定义的CursorAdapter

    这篇文章将深入探讨`AutoCompleteTextView` 的工作原理以及如何结合自定义的`CursorAdapter`来实现更灵活的数据绑定。 `AutoCompleteTextView`是`EditText`的一个子类,它可以动态地根据用户输入的内容展示下拉列表...

    CursorAdapter Filter

    CursorAdapter Filter是Android开发中的一个重要概念,主要用于在ListView或GridView等视图中过滤和显示数据库查询结果。在Android应用开发中,我们常常需要从SQLite数据库中检索数据,并将其动态地展示给用户。...

    androidx-cursoradapter-1.0.0.aar

    androidx-cursoradapter-1.0.0.aar

    VFP CursorAdapter 示例

    在IT行业中,Visual FoxPro(VFP)是一种用于数据库管理和应用程序开发的老牌工具,而CursorAdapter(CA)是VFP中用于连接和操作数据的重要组件。本知识点将深入探讨VFP如何利用CursorAdapter来实现与不同数据库系统...

    Android 简单音乐播放器 (涉及 CursorAdapter、ContentResolver、监听器、服务、广播)

    内容概要: ...能学到什么:ContentProvider、ContentResolver、CursorAdapter、Cursor、后台服务、前台服务、绑定服务、自定义广播、播放进度条、OnClickListener监听器 适用人群:Android开发初学者

    CursorAdapter(CA)相关资料

    我从网络下载的有关 CursorAdapter(CA)相关资料,其中有: 介绍CursorAdapter类 CursorAdapter 起步 国外FoxPro MVP的CursorAdapter示例 VFP9对CursorAdapter的改进 vfp9CA的新方法 CursorAdapter类的制作和应用1-2...

    安卓开发-继承CursorAdapter实现自己的功能

    安卓开发-继承CursorAdapter实现自己的功能。这里就是往sqlite数据库插入数据,然后提取出数据并展示到listview中。这里仅仅是为了学习的目的。其实这里完全可以使用SimpleCursorAdapter来做。

    Doug Hennig的VFP自定义CursorAdapter类

    到处可以看到VFP专家Doug Hennig的大作--CursorAdapter起步,但很难看到其中说到的附件(SFDataClasses.vcx),经常看到有人要这个类,但找不到。这个是我花了些精力和时间弄到的,有需要的Foxer,可以看看。

    CursorAdapter用法

    CursorAdapter的用法 简单的CursorAdapter的用法 简单入门

    CursorAdapter demo

    CursorAdapter 是 Android 开发中一个重要的适配器类,它主要用于将 SQLite 数据库查询结果转换为 ListView 或其他可滚动视图中的数据项。这个"CursorAdapter demo"是演示如何使用 CursorAdapter 来显示数据库中存储...

    CursorAdapter使用1

    CursorAdapter 是 Android 中用于将数据库查询结果(Cursor 对象)与 ListView 等视图组件绑定的适配器。它继承自 BaseAdapter,提供了将数据库数据高效地展示在列表中的功能。在 Android 应用开发中,尤其是涉及到...

    RecyclerViewCursorAdapter

    支持RecyclerView的CursorAdapter,包装了RecyclerView.Adapter的notifyDataSetChanged()相关系列方法。当数据发生改变的时候,只需要调用swapCursorItemChanged()等方法就行了。

    ToDoWithListViewAnimations:该项目演示了如何将 ListViewAnimations 与 CursorAdapter 一起使用

    该项目演示了如何将 ListViewAnimations 与 CursorAdapter 一起使用。 如果使用CursorAdapter启用拖放功能,则需要对adatper进行一些更改。 基本上,拖放涉及对列表的中间修改,在用户完成拖放操作之前将这些更改...

    android-simple-listview-app:简单的Android ListView用法(CursorAdapter)示例

    这个项目“android-simple-listview-app”提供了一个使用CursorAdapter实现的简单ListView示例。CursorAdapter是Android中用于将数据库查询结果绑定到ListView的适配器,尤其适用于处理与SQLite数据库交互的应用。 ...

Global site tag (gtag.js) - Google Analytics