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

android - SimpleCursorAdaptor ListView 使用超过 400 行以上的 TextView 和 ImageView 内存问题

这是最好的方法还是有其他方法?

我扩展 SimpleCursorAdapter 并覆盖 getView(int position, View convertView, ViewGroup parent)

我检索我的光标,膨胀我的 ImageView 和 TextView,从光标中提取数据并在 ImageView 上填充 TextView 和 ImageView 我将我的图像作为 Blob 存储在数据库中。

当我检索我的 Blob 时,我将其作为 byte[] 拉出并将其转换为

位图如下:

位图 bmp = BitmapFactory.decodeByteArray(img, 0, img.length);

然后我将我的 ImageView 上的位图设置为:

iv.setImageBitmap(bmp);

现在我可以向下滚动没有问题,但是当我开始向上滚动列表时,我遇到了主要的内存问题和零星的跳跃(从垃圾收集赶上时)。

谁能告诉我完成这项任务的最佳方法是什么?有没有办法回收不在视图中的位图,并且在接近它们时将它们拉出来并再次显示?

我已经搜索了几个月并尝试了各种技术,但我找不到能够让我完成这项任务的技术。

先感谢您。

0 投票
2 回答
37320 浏览

android - 从与 SimpleCursorAdapter 绑定的 ListView 中获取所选项目

我是 Android 开发的新手……来自 iPhone 和 .Net 背景。我见过与这个问题非常相似的问题,但没有一个涉及 SimpleCursorAdapter。

我有一个基本的 ListActivity,它使用 Cursor 将 SQLite 查询中的数据绑定到我的 ListView:

然后当一个项目被点击时:

这是获取所选元素的 id 的正确方法吗?这似乎很奇怪,因为我认为在数据库关闭后(即在我绑定之后)我不能使用我的光标。当我似乎无法找到从该 id 获取实际项目的方法时,传入的 id 有什么意义?另外,我不明白为什么 getItemAtPosition() 会返回一个游标......游标绑定到整个列表;不只是一排。最后,如果这是正确的,那么显示的两种获取光标的方式有区别吗?谢谢。

0 投票
3 回答
3091 浏览

android - 如何设置视图或活动来处理以前的列表活动?例如“查看完整的详细信息页面”

这是我ListActivity 点击列表后,它将开始一个新的activity,显示每个景点的完整细节。我不知道如何实现完整的详细信息页面。你们能告诉我一些从以前检索数据的完整详细活动代码list吗?

我不知道如何实现这个活动来处理来自 AttractionslistActivity.Class 的动作

0 投票
1 回答
382 浏览

android - 如何在单击时更改 ListView 中的图标?

MyListView链接到数据库(使用SimpleCursorAdapter)。

用户单击该行以更改图标后,我应该怎么做?我试图:

  1. 更新数据库值;
  2. 手动更改图标;
  3. 称呼 myCursor.notifyDataSetChanged();

它不起作用 - 没有任何改变。如果我不打电话myCursor.notifyDataSetChanged();,那么图标就会改变。但是一旦我移动 ListView,它就会消失。如果我再次关联myCursorListView那么它会起作用,但ListView会重新绘制整体,列表会滚动到顶部,这是不正确的行为。

我该怎么办?

0 投票
1 回答
793 浏览

android - android中SimpleCursorAdapter的性能问题

我试图显示一个充满 SimpleCursorAdapter 的 ListView。SimpleCursorAdapter 接收一个 Cursor,其中填充了 rawQuery 的执行,例如:

当我直接在基中执行此查询时,它会在不到 0.1 秒(正常)内返回 40 行。存储库中 rawQuery 的执行也非常快。问题是当我做myListView.setAdapter(simpleCursorAdapter);. 需要2分钟以上!所以我已经将查询更改为SELECT cod AS _id, name FROM supplier ORDER BY name并且执行setAdapter速度非常快(“正常快速”hshs)。

我的问题:存在我可以在 rawQuery 中执行以填充 listView 的 JOIN 限制吗?难道我做错了什么?我应该在存储库中使用 query() 而不是 rawQuery() 吗?

对不起英语,提前谢谢。

0 投票
2 回答
14723 浏览

java - 在 Android 中使用 SimpleCursorAdapter 填充列表视图

我知道这个问题之前已经被问过并得到了回答,但是我遵循了多个教程都无济于事。

我只是想如果我把我的代码放上去,也许有人可以帮助我并指出正确的方向。我不会撒谎,我在这方面是一个大菜鸟,但到目前为止我很喜欢它(好吧,无论如何,到目前为止)。正在发生的一切是当我加载活动时,它只是强制关闭并显示以下错误消息:

所以,就在这里。我的数据库查询是:

然后我的列表视图代码:

最后但同样重要的是,这是我的 XML:

0 投票
2 回答
508 浏览

android - Android Gridview 可以在模拟器上运行,但不能在手机上运行!

手机和模拟器都是2.2。

尝试使用自定义 SimpleCursorAdapter 类创建网格视图。gridview 包含一个图像和文本视图。

下面的代码在模拟器上完美运行,但当我在手机上尝试时没有任何显示。

我注意到只有构造函数是从手机调用的(不是 newView 或 bindView)!有什么帮助吗?

这是我的主要 xml 文件:

这是我对每个网格位置的看法:

最后是我的 onCreate(其中一些):

(是的,我知道我对每个位置内的图像视图一无所知)。

0 投票
3 回答
1693 浏览

android - 自定义 CursorAdapter,ListView 正在转移

我的课程扩展了 SimpleCursorAdapter。在那个类中,我尝试将 CallLog 放入 ListView(带有三个 TextView(号码、姓名和日期)和两个 ImageView(代表呼入和呼出)。

我在 OnCreate 方法中的代码:

我的课:

“数字”、“名称”、“_ID”列工作正常,一切正常。但是持续时间和我尝试从 newView 方法中的光标(例如“持续时间”)获取的另一列正在发生变化。来自 ThinkAndroid 博客 ( http://thinkandroid.wordpress.com/2010/01/11/custom-cursoradapters/ ) 的 jwei512 对此进行了介绍,但我仍然不明白如何将计算列和 newView 中的其他列放入我的视图中方法。

我很困惑,因为我在互联网上找不到解决方案。请帮助我。

jwei512:“然后你会注意到一些奇怪的行为——也就是说,当你上下滚动列表时,你会看到名称开始变化。如果你不实例化并将某些东西放入你的 TextView 会发生什么(基本上充当占位符)然后在您的 bindView 方法中,没有任何内容与某些 TextViews 绑定,因此不会发生变化。所以基本上,如果您看到列表中的东西在移动,那么这是一个很大的标志,可以确保您正在绑定东西到你的 newView 和 bindView 方法中的所有视图。”

XML 代表我的行:

0 投票
1 回答
664 浏览

android - SimpleCursorAdapter 在 ContentProvider 中插入时不会重新加载数据和视图

这段代码工作正常 - 我正在将一堆行加载到 SimpleCursorAdapter 中,ListView 会显示它们。好的。

但是当我通过插入新行时

列表视图不会自行更新 - 我认为 SimpleCursorAdapter 会收到通知,然后可以重新加载它的视图 - 不是吗?

新行已创建 - 我检查了这个

当我使用

在我的 UI 威胁中,新数据被正确加载......我没有得到的观察者/听众模式是什么?:)

谢谢,马丁

0 投票
2 回答
5660 浏览

android - 在 Android 中为 SimpleCursorAdapter 添加日期分隔符

我已经在我的视图上设置了一个 SimpleCursorAdapter,当我从我的数据库中获取数据时它工作正常。使用 ORDER BY date DESC 子句运行查询。所有行都在我的 ListView 中很好地获取和显示,我正在使用 adapter.setViewBinder() 为项目添加一些逻辑(添加缩略图)。

代码是这样的:

现在我想添加更多逻辑:如果日期在两个项目之间发生更改,我想添加一个包含日期的小分隔栏,如下所示:

等等。但是,我不确定如何在适配器中插入新的视图元素,而且我似乎无法在 developer.android.com 上找到答案。

我怎样才能做到这一点?