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

android - 使用带有持有者模式的 SimpleCursorAdapter 的 ListFragment

我正在实现 a ListFragmentfrom aViewPager并使用ListAdapter扩展SimpleCursorAdapter并尝试保持在转换为使用LoaderManager自定义光标和CommonsWare.loaderexJAR 之前使用的相同 Holder Pattern。一切似乎都很好地融合在一起,除了我将LoaderManager. 主要是因为我不确定从 加载/刷新列表中的数据所需的回调,并且我想避免在内存中出现巨大的光标,因为整个表单在. 让表单的每个部分在自己的加载器中管理自己的数据似乎没问题。ListFragmentFragmentActivityViewPagerFragmentActivityViewPager
当我构建类似于演示项目的适配器初始化设置时(请参见下面的代码片段)

这些getSupportLoaderManager()标志是一个错误,我不知道为什么。这是片段的完整代码(我知道这是一个蹩脚的电话号码管理器)。关于我做错了什么的任何指导都会很棒。

0 投票
3 回答
6022 浏览

android - 使用 CursorLoader 查询 SQLite DB 并填充 AutoCompleteTextView

我有一个我想查询的 SQLite 数据库。我想通过 ICS 定位 Android 2.2。我遇到了这篇关于如何做到这一点的文章,但它使用了不推荐使用的代码(不异步查询,而是在 UI 线程上)。从那以后,我读到我可以使用CursorLoaderwithLoaderManager来执行此任务,这是首选的最佳实践方式(以免使 UI 线程陷入困境)。

问题是找到一个简洁的例子来向我解释如何做到这一点。1) 加载数据库,2) 查询它,3) 使用结果填充 AutoCompletetextBox 列表视图。

有这样的例子吗?

0 投票
4 回答
26614 浏览

android - 在 Activity 中初始化 Loader

我目前正在尝试学习如何使用加载器,但在我的活动中启动加载器时遇到了麻烦。

但是 Eclipse 给出了一个错误说明:

LoaderManager 类型中的方法 initLoader(int, Bundle, LoaderManager.LoaderCallbacks) 不适用于参数 (int, null, ActivitySwitchActivity)

谁能帮忙解决我哪里出错了?

0 投票
2 回答
3440 浏览

android - ActionBarSherlock + Maps + Loaders = java.lang.NoClassDefFoundError

编辑:有关详细的操作方法,请查看我的答案

我这两天一直在苦苦挣扎,希望有人能帮忙。

我正在尝试将最新的 ActionBarSherlock (4.0) 与 MapView 一起使用。我知道片段有问题,但我在这个活动中不需要它们。但是我需要加载器,而且看来,要使用加载器,我也必须扩展 FragmentActivity。没问题,我想,我们有来自 Pete Doyle的android-support-v4-googlemaps 。正如许多 SO 线程和 Google 组所建议的那样,我使用 android-support-v4-googlemaps JAR(实际上是 android-support-v13-r7-googlemaps.jar)而不是 android-support-v4.jar 构建 ABS。然后我将它用作我的项目的库。

现在,我想以这种方式进行活动:

public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{

问题:

它可以编译,但会引发运行时错误:E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity

我已经三重检查的事情:

  • ActionBarSherlock 库项目和我的项目都针对 Google API 4.0.3
  • 我有<uses-library android:name="com.google.android.maps" />并且我有它在应用程序标签中。
  • 我的项目的构建路径中也有相同的 android-support-v13-r7-googlemaps.jar
  • 我已经.BananoutMapActivity在我的清单中声明

有趣的是:

  • 当我在 ICS 模拟器上运行它时它可以工作(错误出现在 2.* 模拟器和我的 2.3.7 设备上),在 Honeycomb 上它很可能也可以工作,我猜这是使用 ACL 的问题

  • 当我删除implements LoaderCallbacks<ArrayList<EventItem>>它也可以工作的部分时,但是这样我就无法使用 LoaderManager

为什么会出现 NoClassDefFoundError 错误以及如何让加载程序在我的 MapCapableSherlockEnabledFragmentActivity 中工作?

0 投票
4 回答
7826 浏览

android - 用于在多个活动/片段中重用的全局加载器 (LoaderManager)

我想达到的目标:

我有两个不同的片段。我希望他们都以两种形式(列表和地图)显示相同的数据。我希望他们分享一个装载机(AsyncTaskLoader特别是)。一切正常,但装载程序没有被重复使用。创建另一个并加载数据两次。

我所做的:

Fragment我使用的 sLoaderManager lm = getActivity().getSupportLoaderManager(); 中,我实现LoaderCallbacks<ArrayList<Item>>了所需的方法。在两者中我都使用lm.initLoader(0, args, this);.

但是当我输出时,lm.toString()它们似乎是两个不同的加载器。并且数据被下载了两次。

如何从不同于启动它的 Activity/Fragment 重新连接到同一个 Loader?

这应该是可能的,因为上下文无论如何都附加到 Loader 上onCreate(),例如在配置更改时。

0 投票
1 回答
1169 浏览

android - ICS 中的 SimpleCursorAdapter

我的项目中需要一个 SimpleCursorAdapter。我在 2.3 版本中为此编写了代码。但我无法在 ICS 中添加它。它显示SimpleCursorAdapter(context, layout, c, from, to)已弃用,而新的是SimpleCursorAdapter(context, layout, c, from, to, flags).

其中包含一个新参数“flags”。我应该在标志的位置添加什么?这说明什么?

0 投票
1 回答
12812 浏览

android - 带有由 LoaderManager 管理的自定义适配器的 AlphabetIndexer

我正在尝试AlphabetIndexer使用这样的自定义适配器来实现

带有自定义适配器的 AlphabetIndexer

我的 ContactsCursorAdapter 类扩展SimpleCursorAdapter和实现SectionIndexer ,我正在使用 aLoaderManager来管理我的适配器的光标,所以我已经覆盖了swapCursor()上面示例的第二个答案所示的方法。

但是,如果我将列表视图设置为 fastScrollEnabled = true,则会出现此错误

getListView().setFastScrollEnabled(true);

在我的类 ContactsCursorLoaderListFragment 中,它扩展ListFragment并实现了 LoaderManager.LoaderCallbacks 。

这是堆栈跟踪:

在调用该setFastScrollEnabled()方法后,它会调用自定义适配器的getSections()方法,这是它崩溃的地方。

如果我评论这个setFastScrollEnabled()电话,那么它不会出错,但我没有看到AlphabetIndexer工作。

这是否需要以不同的方式实现,因为我的自定义适配器设置在 aListFragment而不是 a中ListActivity

有没有人有关于如何使这一切工作的建议?

0 投票
5 回答
11722 浏览

java - 调用 initLoader() 后 Loader 不启动?

我有一个片段,并希望在单击按钮时启动一个加载器:

单击按钮后,我可以看到调用了回调的 onCreateLoader 方法,但创建的加载程序从未真正启动。我们是否需要在加载器本身上调用 forceLoad() 才能让它真正启动?没有一个示例帖子这样做,

谢谢

0 投票
2 回答
20281 浏览

android - 具有多线程的Android sqlite

我正在使用sqlite. 有许多活动和一项服务。我从多个线程中使用数据库。它在 中完美Android 2.X运行,但是一旦我在其中运行Android 3.X它总是会引发此错误并且Force Close

任何人都知道它为什么会发生以及如何解决它?

我在互联网上进行了研究,大多数人建议:

  1. 仅对应用程序使用一个 DB 连接。如何保证?我想为服务和活动共享数据库连接。我应该通过创建一个公共静态数据库变量来做到这一点吗?
  2. ContentProvider - 我在代码中使用了复杂的 SQL 语句(例如加入几个表、临时表)。是否可以在 ContentProvider 中运行这些复杂的 SQL 语句?


    谢谢大家。最后,(1)对我来说很好。但是我还是想知道为什么Android 2.X没有这个问题。
0 投票
1 回答
3565 浏览

java - 用 SimpleAdapterCursor swapCursor() 交换光标

我在我的应用程序中设置了一个内容提供程序并使用 LoaderManager 加载数据,但是我在将光标交换到光标适配器时遇到了麻烦,我测试了光标是否正在返回数据并且它正在返回!追踪问题,似乎ad.swapCursor(cursor);是问题所在。

你认为我在这里做错了什么?它可能是内容提供者吗?

谢谢