问题标签 [android-loadermanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1635 浏览

android - 在 LoaderManager 和 MediaStore 中使用多个 Loader “找不到这样的列”

从音乐的标题中,尝试得到对应的艺术家、专辑名称和专辑封面。我使用LoaderManagerCursorLoader。创建 Activity 后,我用getLoaderManager().initLoader(1, null, this). 这是我的加载器的代码:

在创建加载器时

加载完成

该变量album是为整个类定义的,dataalbumsTrackRequested是一个字符串,等于所需专辑的标题。

该应用程序崩溃,我得到:

如果我删除了第二个加载器(Id=2),那么封面当然不会显示,但应用程序不会崩溃。所以问题来自第二个Loader。

我究竟做错了什么 ?我确信这个专栏album_art存在,因为我已经在我的另一个应用程序中获得了这样的封面。但是在这里,我找不到错误的来源。是因为我使用了多个 Loaders 吗?

0 投票
2 回答
21849 浏览

android - 如何通过 CursorLoader 使用 ContentProvider 的 insert() 方法将值正确插入 SQLite 数据库?

我正在阅读文档,但我仍然不太确定。它说要使用getContentResolver(),但实际上并没有使用 CursorLoader。那么有没有办法通过CursorLoader呢?我知道该怎么做query()。步骤是否非常相似?即使只是一个准确解释这一点的链接也会有所帮助。

请注意,不要将我链接到 Google 文档,因为他们没有使用insert()ContentProvider 使用CursorLoader.

提前致谢!!

编辑:我可能应该提到我对此感到困惑的原因是因为调用了一个新的CursorLoader自动调用ContentProviders query()方法。但是我怎样才能为插入做同样的事情呢?

0 投票
1 回答
1038 浏览

android - 查询参数是否影响 ContentResolver notifyChange

我正在使用我的查询参数ContentProvider,允许我在请求来自同步适配器时通知它,以便它可以执行诸如确保不触发同步到网络之类的事情。我正在使用 aCursorLoaderLoaderManagera 附加Cursor到 aCursorAdapterListView- 基础知识。正在提供的数据库通过 Sync Adapter 进行更新,因此通知将使用 Sync Adapter 使用的 URI(带有附加查询参数的那个)。当我在重置加载程序之前让同步适配器完成时,我会在 中获得适当的数据ListView,但是如果我在某些数据仍在同步时尝试重置加载程序,我会得到当时数据库中的内容并且没有通知数据下载完成后重置。

我还没有找到任何关于查询参数是否会影响谁收到通知的答案ContentResolver.notifyChange(Uri, ContentObserver, boolean)。所以我正在尝试解决这个问题,但如果有人能在我弄清楚之前回答这个问题,那将不胜感激。需要明确的ContentProvider是,cursor.setNotificationUri(getContext().getContentResolver(), uri)当请求者不是ContentProvider.query(...). getContext().getContentResolver().notifyChange(uri, null, false)当请求者是ContentProvider.insert/update/delete/bulkInsert(...)使用触发请求的 URI的同步适配器时,它会调用。

0 投票
1 回答
21152 浏览

android - 带 LoaderManager 的 CursorLoader 如何知道将光标发送到 CursorAdapter?

我正在浏览我的一些代码,我意识到我实际上并不知道 aCursorLoaderLoaderManager组合如何与CursorAdapter连接一起使用。这是我感到困惑的部分。

query()那么我自定义的方法如何ContentProvider知道将其发送到特定的CursorAdapter?我只是没有看到联系。我了解其中的所有其他内容,但这个问题是关于什么的。哦,我应该提一下,代码工作正常。

0 投票
19 回答
52230 浏览

android - getLoaderManager().initLoader() 不接受“this”作为参数,尽管类 (ListFragment) 实现了 LoaderManager.LoaderCallbacks

我无法按照在 Android 中使用 SQLite的指南进行操作。我使用的是 aListFragment而不是 a ListActivity(如示例中所示),所以我使用的是ListFragment工具LoaderManager.LoaderCallbacks<Cursor>。然后,在fillData()方法中ListFragment

我得到错误:

在标记线上,即使this执行LoaderManager.LoaderCallbacks<Cursor>

谢谢你的任何想法。

0 投票
1 回答
1192 浏览

android - 具有多个 ListFragment 的 Android SherlockFragmentActivity

我有一个显示几个选项卡的 SherlockFragmentActivity。每个选项卡都是 ListFragment。

每个 ListFragment 都是这样创建的:

然后,每个 ListFragments 都像这样加载:

就像我说的,这个活动有多个以 ListFragments 形式存在的选项卡。我遇到的问题是,当单击选项卡以选择它们时,我得到

这是错误的,我用 adb 来查看数据库,它抱怨的列是 100% 在那里,所以它必须与不关闭游标或其他东西有关,并且当上面加载它时实际使用错误光标。

编辑:添加 CursorLoader 代码

非常感谢任何帮助..

0 投票
3 回答
2671 浏览

android - SherlockFragmentActivity 与多个 ListFragment 和 SQLite 游标战斗

我正在使用一个扩展SherlockFragmentActivity的 Activity ,它有 3 个选项卡。这 3 个选项卡是实现LoaderManager.LoaderCallbacks的ListFragments。Activity 的 OnCreate 方法像这样加载选项卡

我将标签加载到的布局非常简单:

每个选项卡都有一个与此相同的类,只是称为不同的:

它使用此处定义的SimpleCursorLoaded

我遇到的问题是,当我选择说.. 第二个选项卡(第三个选项卡也是如此)时,它会尝试加载光标,但是当它尝试填充 list_items 时,我收到一条错误消息

在设置了几个断点之后,我发现它尝试使用的光标是第一个选项卡中的光标,它在通货膨胀时加载良好,但显然没有关闭,并且显然试图再次使用,即使我(认为)正在向它发送与 getAllVenues() 不同的光标

编辑:这是堆栈跟踪发送给我的最后一个地方 当我设置一些断点时,我可以看到这里提供的光标是第一个选项卡的光标,而不是 Venue 选项卡的光标。

在此处输入图像描述

编辑:显示 getAllVenues 方法的 VenuesDataSource 代码

0 投票
2 回答
541 浏览

android - Android 结合 ImageDownload 和 CursorLoader

我正在使用带有 ImageDownloader 的非常简单的 CursorLoader。ImageDownloader 正在运行,除了 CursorLoader 之外的所有内容都完成了,然后 ImageDownloader 开始下载图像,但 GridView 没有使用下载的图像进行更新。

在我的 ListFragment 中,我有以下onActivityCreated方法:

我的 CursorLoader 如下:

检索所有照片的标记为# STEP 1的行只是检索光标的方法,如下所示:

因此,这是 ListFragment 的 CursorLoader,当返回该 Cursor 时,它假定它是完整的,这是正确的。据我了解,setAdapter()方法实际上会触发getView方法。

我遇到的麻烦是一切似乎都运行良好,我的日志输出正在正确输出图像的 url,断点都显示合法数据,但问题是我的网格视图永远不会用图像更新ImageDownloader 检索。

编辑 这是SimpleCursorLoader我正在使用的:https ://gist.github.com/1217628

0 投票
3 回答
8025 浏览

android - 带有 ActionbarSherlock 的 Android TabsAdapter

我将ActionbarSherlock与实现LoaderManager.LoaderCallbacks的SherlockListFragment一起使用。

在我正在使用的 ApplicationActivity onCreate 方法中

设置布局——效果很好。

我正在像这样初始化操作栏

在 ApplicationActivity 中,我有一个 AsyncTask,它在初始打开时需要几秒钟的时间来加载,并且在针对 API 手动刷新时 - 这意味着我需要确保在上面实例化的片段上更新 ListView,我在onPostExecute 方法,我是这样做的:

这一切都有效

现在,我想放入一个 TabsAdapter 来获得我已经完成的花哨的滑动选项卡,并且它可以工作,但是我提到的关于 onPostExecute 的最后一部分,不起作用:(

这是我的 TabsAdapter:

这是我从 ApplicationActivity 更新的 onCreate 方法

这是我在 ApplicationActivity 中对 onPostExecute 方法所做的更新

基本上,当它尝试运行我的 onPostExecute 代码时

我从片段中的 cursorAdapter 获得 NullPointerException .. 但它找到了片段..

在此处输入图像描述

编辑——请求的代码

0 投票
1 回答
3930 浏览

android - 使用 LoaderManager 的多个加载器,没有得到正确的加载器

我有两个加载器,一个用于填充绑定返回的数据到 2 TextViews,另一个用于填充ListView. 如何确保为每种情况加载正确的装载机?我在WR_VIEW似乎没有创建或加载第一个加载程序(案例)的位置出现错误,因此onLoadFinished()它返回“未找到此类列错误”,因为它正在访问不调用该列的第二个加载程序。

在我的onCreate方法中,我为列表视图设置了适配器:

创建我的 2 个不同CursorLoader的 s:

将数据绑定到我的TextViews此处和:swapCursorListView

重置加载器: