问题标签 [simplecursoradapter]
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 - 在列表中的活动之间传递值
我正在使用 SimpleCursoradapter 填充我在活动中拥有的列表。
现在我需要将此活动的字符串值传递给另一个活动,并且该值将从本地数据库中获取。
我通过在列表视图中创建一个新的文本视图并使用 SimpleCursorAdapter 映射字符串值来做了同样的事情。
这是最好的做法吗?
android - Android:由于并发问题,我不能使用 CursorAdapter。我应该怎么做?
感谢您的时间。希望我能尽可能清楚,如果我没有这样做,请提前道歉。
情况: 我正在创建一个处理本地数据库的多线程 Android 应用程序。出于同步/并发的原因,我希望一个特定的活动根本不与游标打交道。然而,现在它使用 CursorAdapter 在屏幕上显示来自 db 的数据。
问题: 如何在不使用游标的情况下复制 SimpleCursorAdapter 的功能(因为打开游标会引入并发错误)?
(使用对象的 ArrayList 效果最好,因为我已经准备好使用它了。)
谢谢你。我会坚持下去并根据需要澄清一切。
android - Android:无限滚动 - ListView 和 Cursor
我有大约 15,000 行的数据库表,我想在列表视图中显示。我想显示前 100 个,当用户向下滚动到最后一个项目时,应该加载下一个 100(依此类推......)。我已经在 OnScrollListener() 上实现了,它调用 AsyncTask 负责加载更多项目。我遇到的问题是在将更多行添加到游标后,我的 SimpleCursorAdapter 没有更新。我试过 adapter.notifyDataSetChanged(); 但这无济于事。
这是列表监听器:
这是我的 AsyncTask 类:
新行添加到 resultCursor 但列表未更新,我错过了什么?
android - SimpleCursorAdapter 难以使用
很久以来我一直被困在一个点上,即使用
因为它在返回正确值时失败。我在 SO 本身中看到了许多类似的帖子,说我应该在游标数据库查询中添加 _id 列,而不是我应该这样做
我在 onCreate(..) 中的代码是
而之前我的数据库访问代码如下
其中 KEY_ROWID 定义如下
而这个错误是
这里第 90 列不是列 id,但根据我的数据库是存储在 cursor.getString(1) 中的数据,但我认为这里它试图搜索 cursor.getString(0),它是行 id。
后来我改变了我的代码如下
但是我仍然收到错误,这次错误是不同的
我被它困扰了很长时间,请帮助!
编辑:好的,现在你们帮助我的查询语句是正确的,谢谢,对不起,我不擅长理解数据库查询的语法,但我正在努力学习
更改后的工作查询是
实际上我必须用键值更改声明的字符串
但是现在我看到另一个问题不是来自查询语句,而是我访问或使用 simplecursorAdapter 的方式
如您所见,我的表有 2 行和 3 列,现在我想从第 2 列和第 3 列中获取数据并将其放入我的列表视图中。但从查询修复后,我收到另一个错误
原来是
错误是
android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:312)
如您所见,尽管访问了该行,但它仍试图访问第一列的数据
之后,我对代码进行了更改
这只是一个猜测,以便了解 SimpleCursorAdapter 与普通光标相比的工作方式有何不同,我得到的错误是
我知道这个问题变得太长了:-(你建议我从这里删除一些代码吗?
android - 带有 SimpleCursorAdapter 的 NullPointerException
尝试使用自定义适配器设置网格视图,我得到光标并在 ASyncTask 中设置适配器...
这是我的所有代码:
这是我的适配器...
我意识到它有点乱,不是最好的,但它应该可以工作......这是我的错误:
android - Android SimpleCursorAdapter 问题
我在我的 DataBaseHelper 类中编写了这个方法:
并在我的一项活动中编写了这段代码:
代码编译正常。然而,当到达这条线时,它却被强行关闭了lv.setAdapter(ca);
。
有问题吗?我做错了吗?
-
更新:这是 logCat 错误(在我过滤它们之后android.view
:)
java - 每当数据更改时新的 SimpleCursorAdapter?
我刚刚开始进行 Android 开发,并且一直在构建一个使用 a ListActivity
、 aSQLiteDatabase
和 a的简单应用程序SimpleCursorAdapter
。
在 Android 开发者网站上,有一个示例项目演示了SimpleCursorAdadpter
. 查看实现,每当底层数据库由于某些用户操作而被修改时,ListActivity
显式调用以下函数来“刷新”列表:
看起来SimpleCursorAdapter
每次都会创建一个新的并使用setListAdapter()
. 这是最好/最干净的实现吗?这是在 Android 网站上的事实赋予了它很大的可信度,但是我查看了CursorAdapter
文档,发现有一种changeCursor()
方法似乎比上述方法更容易实现,但我只是不确定是什么那可能看起来像。
也许我只是无所事事,但来自 C/C++ 世界,看到每次从数据库中插入/删除一行时创建的这个“新”对象似乎有点笨拙。
android - 更改 ExpandableListView 项的颜色
...通过使用游标从 sql 数据库中的三个不同列中选择单个(无限)行。第一列包含 id。第二列包含净重,第三列包含实际重量。db 中有更多列,但前面的列是唯一相关的列。
接下来我需要取这两个数字并做一些简单的算术运算......(简单,不是问题)然后......
如果该行包含的实际重量小于净重的 15%,则将此项目的 expandableListView 背景变为红色。如果不保持绿色或紫色或粉红色或其他任何东西!
这是我的规格:
链接到sql 数据库和ExpandableListView的simpleCursorTreeAdapter 。
这是我发现的:
我已经阅读了几个不同的教程、androiddocs、q&a,它们都指向 getGroupView()。所有教程的问题在于:适配器是从BaseExpandableListAdapter扩展而来的。不幸的是,我曾多次走上这条路。我正在使用 sql lite 数据库。
但是,我注意到SimpleCursorTreeAdapter 扩展了 BaseExpandableAdapter。因此,应该有一种方法可以使这项工作。
问题:
我需要找到一种使用 getGroupView() 在各个职位之间循环的方法。与遍布网络的教程不同,我的数据来自数据库,我没有使用复选框。
我可以使用 groupView 成功地将所有项目变为绿色或红色,但是没有办法用一个 return 语句来做我需要的事情。!
有什么想法我应该看吗?我想推迟发布代码,直到我有兴趣为止。
android - 从 ListAdapter 的行 ID 获取 ListView 项目 ID
我正在尝试创建从数据库中查询的项目的单选(例如,单选按钮)列表。要使用当前选定的行,我需要使用 ListView 的getCheckedItemPosition()
和setItemChecked()
方法。
我有ListView
一个SimpleCursorAdapter
上面有一套的。当我检索当前选择的项目时,我从数据库中获得了它的行 ID,我需要使用它来查找适当的项目并通过上述方法手动将其设置为选择。换句话说,我需要将行 ID 的状态映射到必须单调的行 ID(因为该setItemChecked()
方法接受位置 ID,而不是数据库行 ID,并且在我的数据库中我可以删除项目)。
那么有没有办法从表格行ID中获取位置ID?如果可能的话,我宁愿不进行搜索。
谢谢。
android - Android - 获取 ListView 项的 id [特例]
在我的数据库类中有一个返回游标的方法。游标将包含来自不同表的数据:
然后,我使用 aSimpleCursorAdapter ca
附加Cursor
到 a ListView lv
:
现在,如果我选择 ListView 中的任何项目,我想要引用该项目 ID。 我希望 id 从项目所属的表中检索其他信息。并在其他活动 MsgView 中检索它
我试过这个:
对单击项目时传递的 id 的引用
使用意图传递该值,以便其他活动将使用此传递的值检索所需的数据。
/li>
然而,这并没有奏效。看来我使用的 id 不是项目的 id !任何解决方案或想法?