问题标签 [android-cursor]

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 投票
2 回答
1084 浏览

android - AlphabetIndexer setCursor 不更新其缓存

我正在尝试使用 AlphabetIndexer 实现快速滚动,但是当光标更改时,它不会刷新索引缓存。在我的 CursorAdapter 构造函数中,我调用setCursor(cursor)但没有任何变化,并且根据文档:

如果游标发生变化,您的适配器负责通过调用 setCursor(Cursor) 来更新游标。getPositionForSection(int) 方法对给定节(字母表)的起始索引进行二进制搜索。

但什么都没有发生。我将其用于搜索过滤器,因此当我搜索联系人时,它会使用联系人更新列表,因此 AlphabetIndexer 应该可以更新列表中新项目的索引。

示例:我的整个列表以“A”开头的联系人开头,以“E”开头的联系人结尾。因此 AlphabetIndexer 将在其缓存中包含此索引。

但是,让我们尝试使用“C”搜索联系人,假设我有 250 个以“C”开头的联系人。因此,我必须快速滚动浏览此联系人,并且必须显示“C”索引,但它不仅仅显示“C”,而是显示所有索引,这些索引在我拥有整个列表时显示。

这是我的 CursorAdapter 构造函数,我在其中为我键入的每个字母调用 setCursor(cursor):

0 投票
1 回答
194 浏览

android - Android SQLit 搜索:NullPointerException?

我需要对我的 SQLite DB 执行搜索操作。

在我的活动中,我必须EditText输入关键字和搜索Button。一旦用户单击按钮,EditText 文本将存储在 中keyword并发送到search(String keyword)DBHelper 类中的方法。

我的SearchActivityforonCreate()和中有这段代码onClick()

但是,我进入NullPointerException了 LogCat!我找不到错误在哪里。

任何人都可以帮忙吗?

0 投票
3 回答
11897 浏览

android - 如何将额外元素插入到 SimpleCursorAdapter 或 Spinner 的光标中?

我有一个 Spinner,用于显示从数据库中获取的数据列表。数据从查询返回到游标,游标被传递给微调器的 SimpleCursorAdapter。它工作正常,但我想在这个数据之上插入另一个项目。例如,微调器已经显示了保存在数据库中的用户创建模板列表,但我想在模板列表顶部插入“新模板”和“空模板”,并且需要将其插入 Cursor/SimpleCursorAdapter不知何故。

我考虑过使用数组列表并从游标填充数组列表,但游标对我来说是更好的解决方案,因为它也包含其他相关的数据行。我在互联网上搜索了其他解决方案,并找到了一些要求为此目的使用 CursorWrapper 的答案,但我找不到如何使用 CursorWrapper 来完成我想要的具体示例。如何在光标中插入一些行,或者有人可以给出一个易于遵循的 CursorWrapper 示例!提前致谢。

0 投票
1 回答
2611 浏览

android - Android:CursorLoader 在非最顶层 Fragment 上崩溃

我有一些使用 CursorLoader 检索其内容的 ListFragment。当用户向下钻取内容时,一个 Fragment 会替换另一个 Fragment(Activity 保持不变)。但是如果内容在非最顶层的 Fragment 上发生变化,应用程序就会崩溃:

当后台更新更改内容时,或者当用户从主屏幕返回并且另一个 Fragment 位于返回堆栈的顶部时,可能会发生这种情况。onLoadFinished处理程序尝试更新不再存在的 UI 。但是为什么片段仍然得到游标更新呢?

如果片段不可见,我已经通过中止更新来解决它,但这似乎是错误的做法。

这是我的 Fragment 的样子,为简洁起见稍作编辑:

isVisible()检查可以防止崩溃,但它不在我见过的任何示例代码中。这里有什么问题?


编辑:果然,我用一个旧视图试图使用一个封闭的游标结束了一个 StaleDataException。所以现在我在视图被销毁时销毁 LoaderManager。仍然不确定这是否是正确的做法,并且我无法重现 StaleDataException。

isVisible()从上面删除了黑客并添加了这个:

0 投票
5 回答
7285 浏览

android - Android 3.0 无法从光标窗口读取行#、列#

我有一个在 android 2.1 上运行良好的应用程序,但是当尝试将其转换到 3.0 时,我得到一个我不熟悉的光标错误。

Java.lang.IllegalStateException :无法从光标窗口读取第 0 行、第 -1 列。确保游标在从中访问数据之前已正确初始化。

所有数据都存储在 SQLite 数据库中,并且此代码在 android 2.1 中运行良好。在 android 3.0 中是否必须以不同方式初始化光标?

下面列出的是我的代码。

0 投票
7 回答
19118 浏览

android - 从字符串中删除换行符

这是我的问题:我有一个数据库,里面充满了电视节目的剧集。一列表示剧集编号。我想在这样的列表中显示剧集:

  • 第1集
  • 第 2 集
  • 第 3 集
  • 等等

我正在使用我自己的扩展 SimpleCursorAdapter 的适配器类来执行此操作......因为我有格式错误我正在使用Android.R.layout.simple_list_item_1Android.R.id.text1

基本上我有一个自定义适配器的唯一原因是我可以做这样的事情:

问题是,我得到一个如下所示的列表:

  • 插曲
  • 1
  • 插曲
  • 2
  • 插曲
  • 3

当我尝试这样的事情时(它在我的代码的不同部分工作):

我得到完全相同的列表输出:(

为什么我不使用创建一个两个文本框并排的自定义视图?我很难让它看起来很漂亮:/

0 投票
1 回答
8188 浏览

android - 如何将超过 1 MB 的数据从 sqlite db 加载到 android 游标?

正是我正在尝试将超过 1MB 的数据从 sqlite 数据库加载到 android 游标。在加载时,它会出现以下错误,例如

如果有人知道如何将大数据(超过1MB)加载到android光标?谢谢,

0 投票
1 回答
238 浏览

android - 在Android中将列表项与公共列数据分开?

我是 Android 的初学者,但据我所知,如果我想将我的数据库绑定到具有自定义行的列表视图,我需要覆盖 CursorAdapter。但是,由于我希望在我的列表视图上实现一个功能,我无法开始处理它:我不仅要显示根据日期的升序排列的列表视图,我还希望有两个单独的部分在我的列表视图中,它们都根据日期排序但使用相同的光标(如果可能的话)。

我的架构的简化版本可能如下所示:_ID、NAME、DATE、TRUTH_VALUE

我的默认视图是按日期对结果游标的行进行排序,但我也想“过滤”或从游标中创建根据“TRUTH_VALUE”分隔的部分,这意味着我的列表中的第 1 部分可以包含项目在“TRUTH_VALUE”中具有任意值 0,根据日期排序,并且第 2 节包含其 TRUTH_VALUE 列是任意 1 的项目,这些项目也根据日期排序。

我似乎找不到任何可以接受两个游标(然后将其制成单个过滤的 ListView)的适配器或其他任何类型的适配器,我也不考虑在我的自定义适配器的构造函数中放置一些额外的参数(例如,在实例化我的适配器,我在参数中包含一个值,帮助适配器确定它是否可以修改它绑定游标数据的方式,我认为这是不可能的,或者只是很困难;更不用说导致性能问题)。

提前致谢!

0 投票
4 回答
10535 浏览

android - 如果不推荐使用重新查询,现在如何重新查询游标?

根据标题,如果我们曾经调用cursor.requery(),但现在已弃用。你现在如何调用这个函数?

此方法已弃用。不要使用这个。只需请求一个新游标,这样您就可以异步执行此操作,并在新游标返回后更新您的列表视图。

那么如何请求一个新的游标并将其传回给适配器呢?

0 投票
2 回答
5948 浏览

android - LoaderManager 是做什么的?

我试图了解它的LoaderManager作用。任何人都可以分享一个例子吗?创建游标时必须使用它们吗?如果不是我应该如何使用?非常感谢一个简单的例子。