问题标签 [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.
android - 在 LoaderManager 和 MediaStore 中使用多个 Loader “找不到这样的列”
从音乐的标题中,尝试得到对应的艺术家、专辑名称和专辑封面。我使用LoaderManager
和CursorLoader
。创建 Activity 后,我用getLoaderManager().initLoader(1, null, this)
. 这是我的加载器的代码:
在创建加载器时
加载完成
该变量album
是为整个类定义的,dataalbumsTrackRequested
是一个字符串,等于所需专辑的标题。
该应用程序崩溃,我得到:
如果我删除了第二个加载器(Id=2),那么封面当然不会显示,但应用程序不会崩溃。所以问题来自第二个Loader。
我究竟做错了什么 ?我确信这个专栏album_art
存在,因为我已经在我的另一个应用程序中获得了这样的封面。但是在这里,我找不到错误的来源。是因为我使用了多个 Loaders 吗?
android - 如何通过 CursorLoader 使用 ContentProvider 的 insert() 方法将值正确插入 SQLite 数据库?
我正在阅读文档,但我仍然不太确定。它说要使用getContentResolver()
,但实际上并没有使用 CursorLoader。那么有没有办法通过CursorLoader
呢?我知道该怎么做query()
。步骤是否非常相似?即使只是一个准确解释这一点的链接也会有所帮助。
请注意,不要将我链接到 Google 文档,因为他们没有使用insert()
ContentProvider 使用CursorLoader
.
提前致谢!!
编辑:我可能应该提到我对此感到困惑的原因是因为调用了一个新的CursorLoader
自动调用ContentProviders
query()
方法。但是我怎样才能为插入做同样的事情呢?
android - 查询参数是否影响 ContentResolver notifyChange
我正在使用我的查询参数ContentProvider
,允许我在请求来自同步适配器时通知它,以便它可以执行诸如确保不触发同步到网络之类的事情。我正在使用 aCursorLoader
将LoaderManager
a 附加Cursor
到 aCursorAdapter
中ListView
- 基础知识。正在提供的数据库通过 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的同步适配器时,它会调用。
android - 带 LoaderManager 的 CursorLoader 如何知道将光标发送到 CursorAdapter?
我正在浏览我的一些代码,我意识到我实际上并不知道 aCursorLoader
和LoaderManager
组合如何与CursorAdapter
连接一起使用。这是我感到困惑的部分。
query()
那么我自定义的方法如何ContentProvider
知道将其发送到特定的CursorAdapter
?我只是没有看到联系。我了解其中的所有其他内容,但这个问题是关于什么的。哦,我应该提一下,代码工作正常。
android - getLoaderManager().initLoader() 不接受“this”作为参数,尽管类 (ListFragment) 实现了 LoaderManager.LoaderCallbacks
我无法按照在 Android 中使用 SQLite的指南进行操作。我使用的是 aListFragment
而不是 a ListActivity
(如示例中所示),所以我使用的是ListFragment
工具LoaderManager.LoaderCallbacks<Cursor>
。然后,在fillData()
方法中ListFragment
:
我得到错误:
在标记线上,即使this
执行LoaderManager.LoaderCallbacks<Cursor>
。
谢谢你的任何想法。
android - 具有多个 ListFragment 的 Android SherlockFragmentActivity
我有一个显示几个选项卡的 SherlockFragmentActivity。每个选项卡都是 ListFragment。
每个 ListFragment 都是这样创建的:
然后,每个 ListFragments 都像这样加载:
就像我说的,这个活动有多个以 ListFragments 形式存在的选项卡。我遇到的问题是,当单击选项卡以选择它们时,我得到
这是错误的,我用 adb 来查看数据库,它抱怨的列是 100% 在那里,所以它必须与不关闭游标或其他东西有关,并且当上面加载它时实际使用错误光标。
编辑:添加 CursorLoader 代码
非常感谢任何帮助..
android - SherlockFragmentActivity 与多个 ListFragment 和 SQLite 游标战斗
我正在使用一个扩展SherlockFragmentActivity的 Activity ,它有 3 个选项卡。这 3 个选项卡是实现LoaderManager.LoaderCallbacks的ListFragments。Activity 的 OnCreate 方法像这样加载选项卡
我将标签加载到的布局非常简单:
每个选项卡都有一个与此相同的类,只是称为不同的:
它使用此处定义的SimpleCursorLoaded:
我遇到的问题是,当我选择说.. 第二个选项卡(第三个选项卡也是如此)时,它会尝试加载光标,但是当它尝试填充 list_items 时,我收到一条错误消息
在设置了几个断点之后,我发现它尝试使用的光标是第一个选项卡中的光标,它在通货膨胀时加载良好,但显然没有关闭,并且显然试图再次使用,即使我(认为)正在向它发送与 getAllVenues() 不同的光标
编辑:这是堆栈跟踪发送给我的最后一个地方 当我设置一些断点时,我可以看到这里提供的光标是第一个选项卡的光标,而不是 Venue 选项卡的光标。
编辑:显示 getAllVenues 方法的 VenuesDataSource 代码
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
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 .. 但它找到了片段..
编辑——请求的代码
android - 使用 LoaderManager 的多个加载器,没有得到正确的加载器
我有两个加载器,一个用于填充绑定返回的数据到 2 TextViews
,另一个用于填充ListView
. 如何确保为每种情况加载正确的装载机?我在WR_VIEW
似乎没有创建或加载第一个加载程序(案例)的位置出现错误,因此onLoadFinished()
它返回“未找到此类列错误”,因为它正在访问不调用该列的第二个加载程序。
在我的onCreate
方法中,我为列表视图设置了适配器:
创建我的 2 个不同CursorLoader
的 s:
将数据绑定到我的TextViews
此处和:swapCursor
ListView
重置加载器: