问题标签 [android-cursoradapter]

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 投票
3 回答
3101 浏览

android - 从 ListView 获取选定的视图

我正在使用 aCursorAdapter来处理我的ListActivity

CursorAdapter和我的扩展和覆盖的适配器类bindView

我的列表项布局在 xml 文件中定义list_item.xml

如何TextView在我的布局中切换 的可见性onListItemClick?我试过了:

但它似乎是在随机选择要切换的列表项,无论我点击哪个。

0 投票
1 回答
6961 浏览

android - 使用 asynctask 从内容提供者加载图像位图

我一直在尝试通过 MediaStore 内容提供程序查询 sd 卡上的所有图像,并在 GridView 上显示它们的缩略图。

但是,如果我在主线程上加载图像缩略图,滚动会变得非常慢......

所以我尝试通过 asynctasks 加载位图:滚动性能变得更好,但现在网格项目不断重新加载它们的缩略图,直到它获得正确的位图......

这是我的异步任务,它加载位图:

这是我的自定义光标适配器:

我使用此代码查询光标并将其发送到适配器:

看起来我的自定义光标适配器上的 bindview() 被调用的频率比预期的要高......任何人都知道如何让我的 gridview 上的图像在保持滚动性能的同时停止重新加载?

提前致谢。

0 投票
1 回答
4078 浏览

android - 使用 SimpleCursorTreeAdapter 在 ExpandableListView 子视图中单击按钮的侦听器

这是我正在使用的内容:我有一个 ExpandableListView,它使用 SimpleCursorTreeAdapter 从 SQLite 数据库填充视图。我正在使用自定义组和子视图,组和子视图中都有按钮。我需要知道如何在这些按钮上设置按钮侦听器,以便在调用侦听器时,我知道它来自哪一行(或光标 ID)。我可以在ChildItemDetailsClicked() 上设置一个工作侦听器,但在侦听器内部我不知道哪一行对应于按下的按钮。有任何想法吗?

组视图:

子视图:

0 投票
1 回答
14968 浏览

android - 创建自定义简单光标适配器

我想创建一个非常简单的光标自定义光标适配器,以方便在单击时更改行项的颜色。使用以下代码

我从这个线程得到了代码https://stackoverflow.com/a/7649880/498449

我会使用一个简单的光标适配器并将代码放在 onClick 中,但是因为 ListFragment 中的默认列表重用了视图,所以当您滚动多个视图时显示为突出显示。谈到 IRC,有人建议我创建一个自定义光标适配器。但是,我似乎无法找到如何做到这一点的最佳实践,以及上面的代码片段适合的位置。非常感谢您的帮助。

我已经用我在网上找到的一些代码更新了光标适配器。但是,我有两个问题。1. 我正在使用游标加载器,所以我没有“游标”对象传递给构造函数。2. 我收到来自 Eclipse 的警告,构造函数已被弃用。

0 投票
3 回答
835 浏览

android - 为什么我的 listView 不显示插入的行?

我有一个自定义 cursorAdapter 肯定缺少一些东西,因为当我在数据库中添加一个项目时,它不会显示在 listView 上,但是如果我重新启动应用程序,它会显示添加的行。

这是我的活动和我的 customAdapter :

感谢您的关注。

编辑:我找到了解决方案,但我讨厌它,我希望有其他解决方案。

现在我有我的活动:

我觉得这很疯狂,更新后应该有一种更简单的方法来更新列表。在这里,我正在重新创建一个游标,重新创建一个我用新游标提供的 cursorAdapter,然后将此 cursorAdapter 影响到 listView。这是来自 android doc 的记事本示例,但我确信有一种方法可以通过操纵光标来更新适配器和 listView,但我不够聪明,无法弄清楚。

0 投票
0 回答
194 浏览

android - 具有不同行类型的 CustomAdapter

我的customAdapter 有问题,我希望它显示一个editText,然后显示来自数据库的列表,然后再显示一个editText。

让我向您展示我的适配器代码:

结果是我有数据库中的列表,但根本没有 editText。由于我是 android 新手,我显然误解了一些东西,或者根本不明白,当然是关于 bindView 和 newView。

感谢您的关注。

编辑:好的,我很难解释我想要什么,对此感到抱歉(加上我的代码误会你的方式,因为它是错误的:()

我想要的是以下模板:具有自定义 cursorAdapter 的 ListView 具有此结构:

  • 一个空的 EditText(用户可以在其中单击以在数据库中添加一行)

  • 在 textViews 中显示来自数据库表的数据的行列表

  • 在最后一行,另一个 editText 与第一行具有相同的目的。

我试图了解自定义适配器是如何工作的,我已经阅读了资料,但我不知道如何在我的情况下做到这一点。

0 投票
3 回答
4750 浏览

android - Android 使用带有 onContentChanged() 的自定义 CursorAdapter

我仍在尝试通过在 listView 上使用 cursorAdapter 来编写好的代码。

我希望在我的活动中,当我更改游标中的数据时,它会自动更新适配器中的游标,更新适配器,当然还有 listView。

神奇的是,有这个函数:onContentChanged(),它是 CursorAdapter 的一个函数,当这个适配器的光标被“通知”时被调用。

但我没有调用这个函数。

现在是代码的有趣部分(不起作用),如果有人能告诉我我错在哪里以及我的误解是什么,我将不胜感激。

活动 :

光标适配器:

让我提醒你我的问题是我想调用这个函数,但它没有被调用。

还有数据库类,但我不知道它是否重要,因为数据库上的插入没问题:

好的,我的 2 个问题:

1)如何调用我的适配器的 onContentChanged() 函数(当然没有显式调用它)

2) 我想知道我的代码是否是使用自定义 cursorAdapter 提供 listView 的好方法。

感谢您的关注。

0 投票
3 回答
4188 浏览

android - 当使用批处理操作插入许多行时,Android ContentProvider 会向 CursorAdapter 调用 setNotificationUri() 的突发

我有一个自定义ContentProvider管理对 SQLite 数据库的访问。要在 a 中加载数据库表的内容ListFragment,我使用LoaderManagerwith aCursorLoader和 a CursorAdapter

SQLite 数据库由后台任务更新,该任务从 Web 服务中获取许多项目,并通过ContentProvider批处理操作将这些项目插入数据库 ( ContentResolver#applyBatch())。

即使这是一个批处理操作,ContentProvider#insert()每个行的调用都会被插入到数据库中,并且在当前的实现中,每个插入命令的ContentProvider调用setNotificationUri()

结果是CursorAdapter接收到大量通知,导致 UI 更新过于频繁,从而产生烦人的闪烁效果。

理想情况下,当批处理操作正在进行时,应该有一种方法ContentObserver只在任何批处理操作结束时通知,而不是在每个插入命令时通知。

有人知道这是否可能吗?请注意,我可以更改ContentProvider实现并覆盖其任何方法。

0 投票
2 回答
868 浏览

android - Android 中的 RatingBars 和侦听器

我是 Android 和 Java 编程的新手。我有一个实现自定义光标适配器的类。问题是我需要能够访问侦听器内游标适配器中的一些信息。见下文:

非常感谢你。

0 投票
1 回答
637 浏览

android - 具有不同行类型说明的 CustomAdapter

我尝试在 Stackoverflow 上发布我的代码,但我认为这有太多错误需要修复。

因此,由于我最大的问题是误解,所以我只是询问我必须开发它的方式。

问题:我想做一个由自定义 cursorAdapter 提供的 listView。

为什么要自定义 cursorAdapter ?

因为现在,我想在 listView 的第一行有一个 editText,然后是数据库中的项目,然后在 listView 的最后一行有另一个 editText。我可以用页眉和页脚来解决它,但后来我想在同一个 listView 中有许多其他行模板,甚至可能有很多光标,这就是原因。

按照本教程,我尝试在适配器中使用多种类型关于在一个列表视图中拥有多种行类型的链接

当然我重写了bindView 和newView。

它失败了。我有很多错误,比如我不知道如何直接将editText添加到我的listView等......对我来说最大的问题是理解,我只需要解释如何做到这一点,我的意思是我应该做什么在 bindView 中,我究竟应该在 newView 中做什么。

好的,我改变了主意,这是我的适配器的代码。小心,这可能很可怕。

注意:我稍后会修复一些优化,如 viewHolder 等......

注意2:以防万一,这是我的主要活动代码

不用担心:

1) 函数 showAlertWindowblabla() ==> 它有效

2) createNoteTop 函数也有效,它在数据库中插入一行。

感谢您的阅读,寻找您的答案。

编辑:好的,所以在做了一些 looooooong 的工作后,我越来越接近我想要的了。不幸的是我仍然有一个显示错误,当我修改一个字段时,我不知道为什么,他只是将该字段放在列表中的其他位置。我认为这是一个很容易修复的大错误(在 bindView 或 newView 方法上),但我很累,我找不到它的来源。因此,为了用一块石头杀死两只鸟,我发布了我的 customAdapter 的修改代码。