2 hxn 217 hxn_217 于 2012.10.25 13:54 提问

CursorLoader使用LoaderManager向CursorAdapter传递一个光标

我在检查代码时发现我并不知道一个CursorLoader和LoaderManage组合起来如何与CursorAdapter连接。这就是我疑惑的部分:

agendaAdapter = new MyAgendaAdapter(this, null);

makeProviderBundle(new String[] {"_id", "event_name", "start_date", "start_time",
    "end_date", "end_time", "location"}, "date(?) >= start_date and date(?) <= end_date", 
new String[]{getChosenDate(), getChosenDate()}, null);

getLoaderManager().initLoader(0, myBundle, MainDisplayActivity.this);
list.setAdapter(agendaAdapter);

我找不到连接,如何传递自定义的ContentProvider中的query()方法到指定的CursorAdapter?

2个回答

O_Casper_ne
O_Casper_ne   2012.10.25 16:31
已采纳

1.首先,创建CursorAdapter

mAdapter = new SimpleCursorAdapter(
        getActivity(),
        android.R.layout.simple_list_item_2, 
        null,
        new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
        new int[] { android.R.id.text1, android.R.id.text2 }, 
        0);

2.然后,初始化loader。

getLoaderManager().initLoader(0, null, this);

3.LoaderManager调用onCreateLoader(int id, Bundle args).
4.查询光标传递到adapter。
5.查询数据与CursorAdapter连接起来。

ueryueryuery
ueryueryuery   2012.10.26 13:35

LZ可以查看一下程序里LoaderManager.LoaderCallbacks实现部分,其中:
1.在onCreateLoader()方法里应该会新建CursorLoader;
2.在onLoadFinished()方法里会把由CursorLoader查得的Cursor传回给你,你这里的agendaAdapter应该就是传回的Cursor。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用CursorLoader异步加载数据
Android 3.0引入了CursorLoader实现异步加载数据,为了避免同步查询数据库时阻塞UI线程的问题。在API 11之前可以通过下载支持库,来使之前的系统支持此功能,下载页面为 http://developer.android.com/tools/extras/support-library.html。 下面是一个例 子: public class ListViewLoa
ListView 利用CursorAdapter 和 LoaderManager从数据库中获取数据
ListView从数据库获取数据并显示的一般方法就是直接将数据库的内容封装到List中,然后再用adapter将List内容显示在ListView中。但前几日偶然发现一种更灵活的方法,可以将数据库的内容加载到ListView中,即LoaderManager + CursorAdapter。这种方式可以把ListView绑定一个CursorAdapter然后可以将ListView的每一个item当做是
android CursorLoader用法介绍
原文:  http://www.jb51.net/article/37767.htm http://write.blog.csdn.net/postedit?ref=toolbar android CursorLoader用法介绍 工作内容集中到Contact模块,这个应用查询数据的地方很多,其使用了CursorLoader这个工具大大简化了代码复杂度。android
在LoaderCallbacks中使用CursorAdapter造成的内存泄露问题
今天在项目中被一个OutOfMemoryError问题困扰了很久,找了半天才发现是由于在实现LoaderCallbacks的回调方法onLoadFinished(Loader loader, D data)中使用CursorAdpater造成了内存泄露,在onLoadFinished(Loader loader, D data)中的data传的是一个cursor回来,然后使用listView.
Android实现获取本机中所有图片(Loader,CursorLoader,LoaderManager,SimpleCursorAdapter的简单应用)
Android实现获取本机中所有图片 本文转自:http://www.cnblogs.com/hanyonglu/archive/2012/05/10/2494908.html 本示例演示如何在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果。   在这个示例中,我使用android-support-v4.jar中的加载器(Loa
通过异步任务LoaderManager加载Cursor游标
这里我们再来对客户端进行研究: package com.example.a05271; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.v4.ap
使用Loader加载本地图片
概述如果我们需要得到本机的所有图片,该怎么做?第一反应就是ContentProvider,android提供了本地资源的URI,其中图片的URI是 MediaStore.Images.Media.EXTERNAL_CONTENT_URI。 但是直接使用ContentProvider有两点不方便,第一是我们需要开一个线程执行,因为如果本地图片很多就会很耗时,容易发生ANR,第二就是每次需要图片都要
深入源码解析Android中Loader、AsyncTaskLoader、CursorLoader、LoaderManager
如果对Loader、AsyncTaskLoader、CursorLoader、LoaderManager等概念不明白或不知道如何使用Loader机制,可参见博文Android中Loader及LoaderManager的使用(附源码下载)。本文主要通过研究Loader及其子类的生命周期的方式来对Loader及其子类、LoaderManager的源码进行研究。Loader是靠LoaderManager管
Android MVP+LoaderManager+CursorLoader实现图片搜索
版权声明:本文为博主原创文章,未经博主允许不得转载 系列教程:Android开发之从零开始系列 源码:AnliaLee/PhotoFactory,欢迎star 大家要是看到有错误的地方或者有啥好的建议,欢迎留言评论 前言 之前写了篇Android项目实践——三行代码解决照片选择与压缩,我们利用封装好的PhotoFactory简化了从系统相册获取照片的操作,但
Android之cursorLoader进行数据异步加载
Android之cursorLoader进行数据异步加载文章链接:http://blog.csdn.net/qq_16628781/article/details/73612568知识点 cursorloader和cursormanager简介; cursorloader进行数据异步加载; onCreateLoader()参数2的介绍; 新名词记录{cursorloader和cursormanage