问题标签 [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.
java - IllegalStateException:从第 0 行 col -1 获取字段槽失败
这是我的 LogCat:
LogCat 指的是这行代码01-15 22:13:08.277: ERROR/AndroidRuntime(28747): at com.mohit.geo2do.adapters.TasksAdapter.bindView(TasksAdapter.java:60)
。这是我的任务适配器的bindView
方法:
我已 100% 验证该列确实存在。可能是什么问题呢?
更新:
游标来自 bindView 方法,所以我自己没有为游标创建查询。我重新创建了数据库,现在我收到了这个错误:
我已验证列索引为-1:
并且到期日期列存在:
android - 我怎样才能让我的光标在方向改变后幸存下来?
我正在尝试使我的应用程序旋转友好,但我在保存光标时遇到了一些问题。
光标包含在 a 中显示的大约 13k+ 行数据ListView
,因此如果我每次配置更改时都进行重新查询,则需要相当长的时间。在我的onRetainNonConfigurationInstance()
中,我正在返回我的光标,然后通过getLastNonConfigurationInstance()
.
但是,我检索到的光标似乎已经关闭,因此我的适配器无法再呈现列表。据我了解,游标已关闭,因为onDestroy()
自动关闭了所有游标。
我像这样保存光标:
并像这样检索它:
如果有人想查看它,我将粘贴堆栈跟踪:
我单步执行了代码,发现就 而言onRetainNonConfigurationInstance()
,光标仍然是打开的,但是在通过getLastNonConfigurationInstance()
它之后它已经关闭了。
我怎样才能让我的光标在方向变化中幸存下来?感谢您的帮助!
编辑:
根据 Romain 的回答,我注释掉了我所有的startManagingCursor()
s. 我应该把这些点联系起来并考虑一下!无论如何,我的应用程序现在可以旋转一圈,但将其翻转回原始方向仍然会使它崩溃。继续我的调试,会让你知道我发现了什么。
EDIT2:
我想我可能已经找到导致新错误的原因。我已经实现了一个FilterQueryProvider
返回新光标的方法。我所做的是将该过滤器的结果分配给我的原始光标。到目前为止似乎工作。
android - 带有 ORDER BY 的 Android SQLite 负值
我有一个非常基本的情况:
我有一个大约 5k 行的表:
我使用“UPDATE words SET rand=random()”定期更新
在 android 中,当我使用 rawQuery() 创建游标时,使用以下内容:
返回的游标没有以正确的顺序迭代。例如,它将按以下顺序输出具有 rand 值的列:
有谁知道这里发生了什么?这不应该工作吗?如果我在 SQLiteManager 中运行完全相同的查询,它会以正确的顺序返回结果,所以这似乎是 android/cursor 特定的。
更新:
这是android中的代码,我尝试了多种方法:
尝试1:
尝试2:
在这两种情况下,我都会像下面这样迭代:
android - android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为2
下面是我的代码,我得到了android.database.CursorIndexOutOfBoundsException
:请求索引 -1,大小为 2 错误。谁能告诉我如何解决它?
android - 在 Android 的 SQLiteCursor 中防止 IllegalStateException
I have an ListActivity
that is bound to a cursor, when items in the ListView
are selected an EditItem
activity is launched by startActivityForResult
, this EditItem
activity preforms several queries, each placed in their own separate Cursor. 这些用于填充微调器,很像 Access DB 中的查找字段。
我的问题是,一旦用户EditItem
通过提交、取消或返回按钮离开此活动,就会返回活动并在(相同或不同的项目)ListView
中选择另一个条目,我在课堂上遇到错误(Android 的,不是我的)。我在两个活动的方法中都关闭了我的游标,因为有时调用结果仍会破坏调用活动。 ListView
IllegalStateException
SQLiteCursor
onDestroy
这并不总是发生在第二次选择项目时,有时会发生在第三次选择时。我想也许我只是比操作系统移动得更快,所以我开始在我的动作之间暂停长达 30 秒,只有在第二次或第三次调用活动以获得结果后才会抛出错误。没有多少暂停可以解决这个问题。
编辑:错误在SQLiteCursor finalize
调用的方法中super.finalize();
编辑#2:线程的堆栈跟踪:
编辑来自 LogCat 的 #3 堆栈跟踪(partslist 是表名):
android - 由于 java.lang.IllegalArgumentException,应用程序在启动时崩溃:列“_id”不存在
每当我启动我的应用程序时,我的java.lang.IllegalArgumentException: column '_id' does not exist
LogCat 都会出现错误。我已经创建了 column '_id'
,但它仍然抛出这个。这是我的主要.java:
这是我的 DataHelper 类:
android - 应用程序没有关闭在此处打开的游标或数据库对象:
我的代码是:
我已经在这里关闭了数据库..在我所有的活动中,除了它的工作(没有显示异常)..当我从这个测试活动中按下返回按钮时,会抛出以下异常
在此 getEvents 行上引发异常:
例外 :
android - Android:GUID 主键
我知道如果我不使用名为 _id 的字段作为我在 Android 中的主键,那么 CursorAdapter 之类的某些东西将不起作用,但 _id 列是否需要是自动增量 int?
我可以使用 Guid 作为键,只要它被称为 _id,并且 CursorAdapter 仍然可以工作吗?
android - Android 仅使用列出电子邮件的联系人获得光标 >android 2.0
我有以下代码可以从中获取联系人content provider
我用这个来通过他们的 id 获取特定联系人的电子邮件:
我当前的实现传递游标中的每一行并获取其电子邮件并将它们存储在 java 对象的 arrayList 中。
我想知道是否有可能只是查询内容提供者并返回一个光标,其中只有带有 ID/姓名等的联系人,其中列出了电子邮件地址。
这种方式获取联系人列表的等待时间很长。我正在将此列表用于列表适配器。如果我只能得到有电子邮件的联系人,我可以在我的列表中使用光标适配器。
这样的事情可能吗?我怎样才能加快这个过程?
android - 如何从 SimpleCursorAdapter 的选定项目中获取字符串?
我正在使用 AutoCompleteTextView 在用户键入要搜索的输入字符串时向用户建议我的 sqlite db 中的一些单词。
我尝试使用 simple_list_item_2 使建议看起来友好,这是我的代码:
从单击的项目中检索字符串时遇到问题。它在:
我需要来自单词和含义字段的字符串。任何回应都会很棒...