问题标签 [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 回答
4161 浏览

android - Android CursorLoader 和 LoaderManager 错误

我正在尝试在 10 的最小 API 上实现 CursorLoader 和 LoaderManager。

但是,我在 AsyncTaskLoader.class 的第 63 行不断收到 IllegalArgument 异常(发生异常的 AsyncTaskLoader.class 的源代码在下方和此链接处。

以下是错误时的堆栈:

我测试了我的内容提供程序,并验证了查询方法从我的 Sqlite 数据库返回了一个有效的游标。下面是我尝试实现 CursorLoader 和 LoaderManager 的活动的源代码:

有人在这里看到我做错了什么吗?

谢谢。


该应用程序似乎可以做到

然后它在那里抛出异常。

下面是logcat:

0 投票
1 回答
1342 浏览

android - LoaderManager 和 java.lang.NullPointerException 错误

我正在研究android中的碎片,我写了这个简单的程序:在这个应用程序中我想创建一个列表视图,我不会创建一个后台线程,这个线程写在一个日志文件中

这是主要活动

这是我的 ListFragment:

在这里你可以看到activity_main.xml

activity_main.xml

现在我认为问题存在,getLoaderManager但我不明白如何解决它。

编辑

当我运行我的应用程序时,我在 logcat 中看到了这个:

我认为问题是这段代码

当我删除这段代码时一切正常,但我不知道,因为我有这种情况。

0 投票
1 回答
322 浏览

android - 当多个加载器与加载器管理器一起使用时,android 无法在方向更改时保持正确的加载器状态

我在我的应用程序中使用 4 个加载器将数据加载到列表视图中。当我改变方向时,加载器管理器总是尝试加载第一个加载器。为了解决这个问题,我在应用程序的“onResume”中重新启动加载程序。现在列表视图填充了数据,但未维护方向更改之前列表的位置。有没有办法在方向改变时保持装载机状态?

0 投票
1 回答
1243 浏览

search - CursorLoader 不更新 listView,但光标有正确的结果

我正在为一个 pre-android 3.0 兼容的应用程序实现一个 searchView,并且正在为正确的 listView 重新加载而苦苦挣扎。我认为支持库存在一些问题,甚至可能是通过我无法使用的 onQueryTextChangedListener 的 EditText istea 上的 textChangeListener 实现的罕见实现。有什么帮助吗?

这是代码:

0 投票
1 回答
2772 浏览

android - IllegalStateException - 使用 AutocompleteTextView 支持 LoaderManager

我认为使用 CursorLoaders 和 Loadermanagers 的好处之一是您不需要手动管理光标的生命周期。因此,我使用 loadermanager 将适配器绑定到使用支持包的 AutoCompleteTextView。

它工作得很好,只是它随机抛出一个错误说“IllegalStateException - 尝试重新打开一个已经关闭的对象”。如果我们使用加载器管理器,这肯定不应该发生吗?

这是代码:

这是错误堆栈:

关于什么可能是错误的任何想法?

0 投票
1 回答
851 浏览

android - 使用动态加载器在没有 ListFragments 的 ViewPager 中加载 ListView 页面的模式?

如果我有ViewPager一定数量的页面,那么使用Loader框架为每个页面加载数据的最佳方式是什么?每个页面都包含一个具有自己的适配器实例的 ListView。

  1. 为每个页面使用单独的加载器;或者
  2. 使用单个加载器来检查哪些页面未加载并加载它们

问题是,用户可能希望快速浏览一堆页面,因此应该很容易“取消”加载出于性能原因不需要的页面。

另一方面,似乎有很多加载程序可能会产生开销。

编辑:Loader的 s 实际上需要有动态 ID 来表示它们正在加载的内容。我可能会在加载程序 ID 上使用掩码,然后在加载程序完成后调用destroyLoader().

0 投票
3 回答
2430 浏览

android - 带有扩展 SimpleCursorAdapter 的 nullPointerException

我正在学习自定义提供程序和加载程序。作为一个简单的例子,我正在尝试实现一个GridView显示存储在外部 SD 卡中的图片。尽管我已经阅读了很多(文档、SO 上的主题、Google 群组、论坛......),但我无法让我的代码正常工作。我知道此示例中可能存在几个问题,但我想逐步进行。停止代码的第一个错误是 a NullPointerException,所以我的问题是如何修复它。

这是我的最小版本Activity(它使用支持库 v4):

这是我的扩展SimpleCursorAdapter

当我运行代码时,logcat在适配器NullPointerException的方法中显示一个。getCount()似乎没有将光标传递给适配器。

更新

在活动中,我将 null 作为光标参数传递给适配器构造函数,因为:

  • 我不知道如何获取对光标的引用,因为我正在使用getSupportLoaderManager().initLoader()
  • 由于同样的原因,在其他 SO 线程上也做了同样的事情,而且对他们来说似乎工作正常

更新

这是 logcat 输出

我真的很感激任何帮助。TIA

0 投票
3 回答
4061 浏览

android - 屏幕旋转后使用 CursorLoader 加载数据时出现异常

我的应用程序在 Nexus 7 平板电脑上运行时遇到一个奇怪的问题。我有两个片段使用 CursorLoader 从我的自定义 ContentProvider 加载数据。

当我启动应用程序时,它在横向和纵向模式下都运行良好,加载程序正确加载数据。当我旋转屏幕时会出现问题:我的 Activity 和两个 Fragment 都已正确重新创建,并且加载程序再次启动,如预期的那样。他们加载数据(调试时我看到两个加载器都调用了 onLoadFinished),但之后应用程序是 FC,但有以下异常:

老实说,stacktrace 没有帮助,因为它不包含对我的代码的任何引用,而且这是一个非常奇怪的问题,因为如上所述,这两个片段在我第一次启动应用程序时工作,在手机布局上正常工作,但是屏幕旋转后我的平板电脑布局崩溃。

编辑:

在这两个片段中,我在 onActivityCreated 方法中加载数据,只需调用 getLoaderManager.initLoader(....);

这就是我创建装载机的方式:

第一个片段

第二个片段:

这是我 CP 的内容 uri 的声明:

0 投票
3 回答
3313 浏览

android - 安卓位置监听器

我想从同一个监听器和实现中同时收听 GPS 和 NETWORK 位置提供程序

这样做可以吗:

它会为两个提供者使用相同的方法吗?

0 投票
0 回答
532 浏览

android - 游标加载器在 Spinner onSelectedItem 调用上自动重新查询

我使用微调器作为操作栏项目(也使用带有滑动的标签导航)。我有 2 个使用加载器加载数据的 listFragments(通过选项卡访问)。我希望每次在微调器中选择不同的项目(在活动级别上工作)时加载程序重新查询。这是片段加载器的调用之一, selectedNumber 是一个字符串,应该从微调器 onSelectedItem 传递给片段(我还不知道如何,但这应该很容易)。

有没有一种方法可以强制加载程序重新查询内容提供程序,或者我必须取消片段并使用新查询构建另一个片段?

(关于如何将字符串从活动传递到两个片段的一些快速建议会很酷)