问题标签 [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.

0 投票
1 回答
711 浏览

android - 从 SimpleCursorAdapter 访问 SQLite 值

我有一个名为“节点”的 SQLite 表,其中包含一组所有节点(每个节点都有多个属性)。

在一个活动中,我使用 SimpleCursorAdapter 的扩展来显示 Nodes 表的子集,基于 SQL 查询,将 Cursor 传递给结果表(来自查询)。

我想修改 ListActivity 中的每个列表项,使其根据项目是冷、暖还是热显示不同的颜色。我有一个小(空)视图,但它始终默认为白色(“其他”部分)。

我的问题是,虽然传递给 SimpleListAdapter 的光标将包含我想要的子集中相应节点的 _ID(我假设),但getView中的位置参数是子集的本地参数,所以我不能交叉引用它节点表。我错过了一些简单的技术吗?

一如既往,任何帮助表示赞赏。

标记答案的注释 4 帮助我解决了这个问题:将传递给 SimpleCursorAdapter 的光标存储为成员变量,然后使用移动到位置和 getLong:

其中position是 getView() 方法中的本地参数,而 0 用于 getLong 因为 db_id 是传递给 SimpleCursorAdapter 的游标中的第一列

0 投票
4 回答
5079 浏览

android - 如何使用 SimpleCursorAdapter 更改特定行的背景

我正在尝试创建一个从我的 SQLite 数据库中生成的列表视图。我目前将代码设置为仅相应地显示每一行并用数据填充 3 个文本视图。我希望能够使用某种 If 语句来检查其中一个值是否为“Room1”,然后将该行的背景设置为某种颜色。

这样,列表中的每一行将根据数据的“房间”具有不同的背景。

我尝试过扩展 SimpleCursorAdapter,但我对如何从中获得我想要的东西有点迷茫。

这是我目前为 SimpleCursorAdapter 提供的内容:

0 投票
1 回答
207 浏览

android - 将变量传递给 ViewBinder

我有一个ViewBinder充当我ListView和数据库游标适配器之间的中间人。根据显示此数据的上下文,我需要ViewBinder做不同的事情。

例如,以一个任务管理应用程序为例,它显示所有存在的任务组的任务。也许在这种情况下,应用程序希望在列表视图中显示任务组的名称,而如果它正在显示特定任务组之一的任务,则它不希望这样做。列表视图项可以有一个隐藏字段,并且ViewBinder可以用于将任务组的名称映射到该字段,并在必要时将其设置为可见(按照主应用程序的说明)。

我的问题是如何告诉ViewBinder它正在显示的上下文,以便它可以确定如何表现?

我意识到这可能可以通过实现许多不同ViewBindersViewBinder.

0 投票
0 回答
436 浏览

android - 奇怪的选中/取消选中 UI 行为

我面临着奇怪的 UI 行为问题。当我设置 *listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);* onListItemClick 行为不正确...如果我在这里遗漏任何内容,请告诉我。

当我评论以下行时

此 UI 按预期工作正常,但以下部分代码不起作用

列表框.java

MyCursorAdapter.java

主要的.xml

提取行.xml

0 投票
1 回答
2719 浏览

android - Android SimpleCursorAdapter + ListView 不工作

您好我正在尝试使用 SimpleCursorAdapter 将值绑定到列表适配器。游标来自 SQLLite 数据库。但是,无论光标中的结果如何(它总是至少有一行),列表视图都会显示空消息。我对 android 很陌生,感谢任何帮助。

我的代码如下:

在活动中:由 onCreate() 调用

检索光标

session_list_row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="" android:id="@+id/sessionNameRow" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </LinearLayout>

主要布局 <ListView android:id="@android:id/list" android:layout_height="fill_parent" android:layout_width="fill_parent"></ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_sessions_msg" />

0 投票
1 回答
163 浏览

android - 如何使光标适应具有大量自定义行为的 ListView?

我目前正在开发一个 android 应用程序,该应用程序使用SimpleCursorAdapter自定义ViewBinder来设置我的ListView.

但是,当我的列表长于屏幕大小,并且用户上下滚动时,系统会导致错误的行呈现错误的颜色等。我的理解是这是系统重用的问题视图作为滚动的优化,如此所述。

我完全支持优化,但是我需要项目在ListView. 解决这个问题的正确方法是什么?

我的想法是我可以实现 a CursorAdapter,或者最好是 a SimpleCursorAdapter,但我不知道如何去做。或者,是否只是将文本颜色设置回 my 中的默认值ViewBinder

0 投票
1 回答
305 浏览

android - FTS3 数据库中的别名 _id

我的应用程序使用带有 FTS3 的 SQLite 数据库。查询结果应使用SimpleCursorAdapter. 但是我得到以下异常:

java.lang.IllegalArgumentException: column '_id' does not exist

做一些搜索我找到了这个答案: Android Full Text Search and ListAdapter。我明白了,但我不知道如何为docid -> _id. Android 页面上的 SearchableDictionary 示例对我没有帮助;-)

干杯,
罗伯特

0 投票
2 回答
2678 浏览

android - Android 多个 SimpleCursorAdapter

我正在开发一个与 SQLite 数据库一起使用的小应用程序...我正在显示取决于优先级的图片(绿色、黄色或红色)。我有 3 个优先级(高、中和低......),我得到的光标如下:

然后我打电话给其他一些像这样的东西:

所以我已经准备好在我的列表中显示我的所有东西......但如果我使用 setListAdapter 我只能使用其中的 1 个。因为我有 3 种不同的布局和不同的光标,所以这真的很难做到。我怎样才能让所有这 3 个 SimpleCursorAdapter 现在显示在我的列表中?

编辑:也许我不够清楚......所有这些数据都只在一个表中......但由于我有 3 种不同的布局(因为不同的优先级颜色)我需要单独添加它们......或者有没有换句话说,如果优先级等于“高”,则将此图像放入布局中,所以我只需要一个 SimpleCursorAdapter?

0 投票
2 回答
1961 浏览

android - ListFragment 显示数据时的延迟

首先感谢所有让我的 android 开发冒险变得如此轻松的用户。但是,我遇到了一种我找不到解决方案的情况,所以这里是:

我有一个包含各种片段的活动,这些片段旨在相互交互。这些包括:

  1. 包含 GridView 的 Fragment 由 Sqlite db 中的一个表中的 SimpleCursorAdapter 填充

    /li>
  2. 由另一个表中的另一个 SimpleCursorAdapter 填充的 ListFragment // 列表功能

    /li>
  3. 当用户从 GridView 中选择某些内容时,Activity 会将该项插入到 ListView 的表中,然后重新初始化它。

    /li>

现在解决问题:当我查看日志并记录每个步骤时。整个过程不超过 50-70 毫秒,但从我单击 Grid 到更新 ListView 的时间,我可以计算 2-3 秒。似乎问题在于 ListFragmentsetListAdapter()以及刷新视图所需的时间。

我已经尝试了各种方法来解决这个问题,例如 1. 使用接口来监听选择或直接从 GridView 片段调用它 2. 使用其中一个newadapter.changecursor(c)或3 调用 ListFragment 中的辅助函数newadapter.getCursor().requery()3. 这个的其他变体......

但它似乎总是需要任何帮助。

0 投票
1 回答
198 浏览

android - 如何将多个数据库字段映射到位于 ListView 的一个 TextView?

这是具有 1 对 1 字段映射的代码:

但是我的数据库中有另一个字段 -DbAdapter.KEY_CLOSE_TIME应该R.id.time显示像DbAdapter.KEY_OPEN_TIME + " - " + DbAdapter.KEY_CLOSE_TIME.

我该怎么做?