问题标签 [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 投票
2 回答
3746 浏览

android - BaseAdapter 与 CursorAdapter

我想知道何时使用每个适配器。根据我的经验,当我从 API 获取数据并将其存储在 Collection 对象中时,这篇文章BaseAdapters 很有用。但是,CursorAdapter 用于从数据库中查询内容,电话议程...通常,内容还具有内容提供者来从中查询信息。

所以基本上 BaseAdapter 用于没有内容提供者访问它们的查询,因为在这种情况下,CursorAdapter 将是最佳选择。那正确吗?

0 投票
1 回答
302 浏览

android - 无法弄清楚为什么滚动 ListView 时背景颜色的行为不稳定

我认为这个问题值得一读,在我看来......我试图详细解释,但抽象出来以方便您阅读。

  1. 我有一个ListView由自定义填充的CursorAdapter.

  2. bindView()方法中,我尝试设置孩子的颜色。

  3. 这个孩子是一个LinearLayout,用于列表中项目的根布局。它在 XML 文件中,在自定义 CursorAdapterR.layout.list_item的方法中膨胀。newView()

  4. 我使用下面的代码设置背景颜色。

    /li>

setBackgroundColor除了if 块之外,不要担心任何事情。你会看到的。

预期的行为:一些孩子将被绘制DKGRAY并将 * 附加到某个 textView。其他将是默认颜色并且没有这个 *. 我使用这个 * 标签只是为了确保它不是(直接)我的代码。

行为:当 ListView 最初显示时,它看起来很好,正如预期的那样。当我滚动列表时,它变得“奇怪”(我不明白),一些孩子会开始改变颜色,直到所有孩子都被涂上DKGRAY

现在,最糟糕的是这行得通:

正确的孩子被绘制成 DKGRAY 和 GREY,滚动列表不会使列表颜色变得疯狂。颜色没有变化,一切似乎都很好。除了,当然,我不想要 DKGRAY 和 GREY,我想要 DKGRAY,别管其他孩子。¬¬

请帮我!


图片如下。查看第一列中的 * 在不同日期之间如何正常工作,但颜色却不行。

1-我开始滚动,一些孩子已经有缺陷:

在此处输入图像描述

2-我完成上下滚动,最后所有孩子都有缺陷:

在此处输入图像描述

3-但是当我为所有孩子设置颜色时,滚动不会搞砸:

在此处输入图像描述

0 投票
3 回答
4436 浏览

android - 我要使用什么 CursorAdapter?

CursorAdapter 有 3 个构造函数。让我们看看指南和参考。

1)CursorAdapter(上下文上下文,光标c)

此构造函数已弃用。不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

2)CursorAdapter(上下文上下文,Cursor c,布尔自动重新查询)

允许控制自动重新查询的构造函数。建议您不要使用 this,而是使用 CursorAdapter(Context, Cursor, int)。

3)CursorAdapter(上下文上下文,光标c,int标志)

推荐的构造函数。

flags 用于确定适配器行为的标志;可以是 FLAG_AUTO_REQUERY 和 FLAG_REGISTER_CONTENT_OBSERVER 的任意组合。

FLAG_AUTO_REQUERY 此常量已弃用。不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

FLAG_REGISTER_CONTENT_OBSERVER。将 CursorAdapter 与 CursorLoader 一起使用时,不需要此标志。

CursorAdapter(Context context, Cursor c, int flags) 是推荐的构造函数,但可能的标志是 2,一个已弃用,另一个在使用带有 CursorLoader 的 CursorAdapter 时不需要。如果我将 CursorAdapter 与 CursorLoader 一起使用,我必须使用此构造函数并将零作为标志传递?在这种情况下,构造函数是否与 #1 相同?

0 投票
1 回答
321 浏览

android - 如何修改 runQueryOnBackgroundThread 以识别我来自哪里的活动?

我有三个选项卡式活动,每个人都是具有相同 cursorAdapter 的 listView。当然,每个活动都有不同的光标(它们之间的唯一区别是where字符串)。

我已经覆盖了runQueryOnBackgroundThread()适配器中的 以获得过滤列表。

当我在runQueryOnBackgroundThread()方法中时,我需要知道我来自的 Activity,因为我需要在filtered查询中添加一个字符串

0 投票
1 回答
377 浏览

android - Android - 如何使用一条记录(光标)为 ListView 中的多个列表项填充数据?

有谁知道如何达到以下要求?

查询数据库时,只返回一条记录。此记录将用于填充 ListView 中的几个列表项(例如 5 个条目)。

由于它只有一条记录,因此我在填充第二至第五个条目的条目时遇到了困难。

我正在使用CursorLoader从数据库中查询数据。

谢谢

0 投票
1 回答
570 浏览

android - Android:如何从 XML 文件中的数据创建 CursorAdapter

在 android 中,我们可以从 XML 文件中的数据创建 CursorAdapter 吗?这是实际的问题:

我需要创建一个 ListView ,其项目可能会有所不同。每个项目都有三个字段:ItemName、ItemValue、ItemUnit。如果适配器是从提供给应用程序的外部文件(例如:XML 文件)创建的,则项目数及其字段值可以在不更改应用程序代码的情况下更改。实现这一目标的最佳方法是什么?

0 投票
4 回答
3233 浏览

android - 光标适配器和按钮

我有一个数据库。数据库中的值显示在列表视图中。列表视图有一个位图、4 个文本视图和 2 个按钮。我为我的 2 个按钮编写了两个不同的 OnClickListener,但是这两种方法都不成功。当我单击按钮时,程序会崩溃,当它尝试执行“tvText1.setText(...)”时

有人知道如何解决吗?

xml 文件中的按钮看起来像:

这是我的光标适配器

谢谢您的帮助。

干杯

菲利克斯

评论。

整个布局文件

评论评论:

现在我删除了 tv.Text1.setText("On")。对于 On-button 仍然有一个例外。对于关闭按钮,system.out.println() 运行良好。

这是代码的一部分:

0 投票
2 回答
3234 浏览

android - 带有 TextView 和 Button 的列表视图。单击的按钮的 RowId

我有一个如下的列表视图。TextView 中的文本来自数据库。

当我单击按钮时,我想在 Toast 中显示该行的 TextView 中的文本。

我的问题如下:当我单击按钮时,我正在显示由光标选择的行的文本。我没有显示按钮所在行的文本。我知道问题出在 mCursor 变量上。

我不知道如何解决它。有人有想法吗?

这是我的 ModulCursorAdapter:

评论

xml 文件中的按钮:

MainActivity 中的 OnClick 方法

主要活动

Notes.DbAdapter.fetchAllNotes() 方法

谢谢。

菲利克斯

0 投票
2 回答
11151 浏览

android - 如何使用 CursorAdapter 从 ListView 中删除所选项目

我正在使用CursorAdapter,下面是我的适配器类。我的列表由两个文本视图和每行一个按钮组成。现在,单击按钮后,我想从列表和数据库中删除所选项目。如何从数据库中获取所选项目的 id,以便我可以将其删除,然后通知适配器(刷新列表)。

0 投票
1 回答
766 浏览

android - Android:如何注销 CursorAdapter 的 ContentObserver 和 DataSetObserver

我发现 CursorAdapter 侧没有用于取消注册它应用的 ContentObserver 和 DataSetObserver 的接口。我只能使用 Cursor.getCursor().close() 来关闭游标,但不能取消注册其观察者。