问题标签 [android-listview]

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 回答
12029 浏览

android - 将隐藏值分配给列表视图项

我有一个扩展 ListView 的活动。我用对 sqlite 数据库的查询结果填充我的列表。列表元素由 start_time、end_time、client_name 和 status 组成。这些是我需要为每个列表项显示的 4 位信息。

我的问题是:我可以为这个 ListView 项目分配隐藏元素吗?

例如,我想为该 ListView 项存储数据库行的 _id 字段,以便当我单击它时,我可以根据该数据库行的数据启动一个新活动。

编辑

我用来从光标中填写列表的代码:

其中 R.layout.list_item 是我的列表项的 XML。我来自 PHP/HTML 背景,所以我通常在这里做的是有一个隐藏字段来保存我的 _id 值,然后我可以在单击列表项后访问该值。我可以在android中做类似的事情吗?我可以在我的 xml 布局中放置一个隐藏的 _id 字段吗?

0 投票
28 回答
248393 浏览

android - 如何在不折叠的情况下将 ListView 放入 ScrollView?

我四处寻找解决这个问题的方法,我能找到的唯一答案似乎是“不要将 ListView 放入 ScrollView ”。不过,我还没有看到任何真正的解释。我似乎能找到的唯一原因是谷歌认为你不应该这样做。好吧,我做到了,所以我做到了。

所以问题是,如何将 ListView 放入 ScrollView 而不使其折叠到最小高度?

0 投票
3 回答
7753 浏览

android - 当项目数量发生变化时,如何更新绑定到列表视图的 CursorAdapter?

我有一个由基于 CursorAdapter 的自定义适配器支持的 ListView。

我给它的游标是基于数据库中的笔记列表(每个笔记都是一个数据库行)。

一切正常,直到我从数据库中删除一条笔记。我不确定如何正确更新光标/适配器/列表视图以显示新数据。

我已经阅读了关于使用adapter.notifyDataSetChanged()vscursor.requery()刷新 UI 的相互冲突的帖子,但在这种情况下,它们似乎都不起作用。我能够刷新它的唯一方法是从新查询创建新光标并调用adapter.changeCursor(newCursor).

有人可以演示更新支持数据和 UI 的正确方法(如果可能,使用伪代码)。

0 投票
3 回答
2214 浏览

android - 在 ListAdapter 将光标数据显示在 ListView 之前编辑光标数据

我首先将 SQLite 数据库中的信息检索到游标中。

游标包含格式为的时间戳列:yyyy-MM-dd HH:mm:ss.SSS例如,2010-08-27 21:25:30.575

检索后,我设置了一个SimpleCursorAdapter这样的(代码简化):

该代码成功地以上述格式显示时间和日期,但我想仅以 DD/MM/YYYY 格式显示日期(或者如果可能的话,可能是基于区域设置的用户格式)。

如何干预 SimpleCursorAdapter 以将日期更改为我喜欢的格式?

注意,如果可以简化问题,我愿意更改将信息传递给适配器的方式。如果 SQLite 具有内置格式化程序,我也不介意更改光标的 SQLite 查询。

0 投票
2 回答
1646 浏览

android - 将自定义 ID 关联到 ListView 项

是否可以在 ArrayAdapter 实例化中使用哈希图?

我的“区域”哈希图将自定义 ID 处理为键:Hashmap<ID,Value>

这里的问题是它ArrayAdapter会调用我的哈希图toString(),它会打印value并丢弃ID

我希望能够使用该 ID,有什么方法可以将其设置为simple_list_item_1's ID,以便稍后在 onclick 事件中检索它?

0 投票
1 回答
1004 浏览

android - 分隔线在我的列表视图中不起作用

我正在尝试在我的简单列表视图中使用渐变分隔线。但它根本行不通。

布局xml

分频器 Xml

0 投票
3 回答
10515 浏览

android - 在 ListView 中滚动一些图像非常滞后

我有下面的屏幕,其中包含一些图像(每个可见页面 6 个)。上下滚动对我来说似乎很滞后。就像它再次渲染图像一样。向上滚动似乎比向下滚动更糟糕。

任何人都知道如何在这样的区域提高性能以创建一个漂亮的平滑滚动?

更新:图像和文本都是从我的 SQLite 数据库中检索的。该列表是使用 SimpleCursorAdapter 创建的。

画廊

0 投票
1 回答
2766 浏览

android - Android:将数据绑定到 ListView 而不为 ListAdapter 准备 ArrayLists?

现在,我以一种很好的面向对象的形式获得了我的模型。为了将它们绑定到我的列表,我必须使用 listAdapter。我只能用愚蠢的 ArrayLists 填充这个 listAdapter 吗?因为这意味着,我必须遍历我的 ModelCollection 并再次从我的模型中提取所有数据。

所以,我将我的数据从模型中分离出来,如果 modelCollection 中有机会(比如通过新项目/分页变得更大),我无法轻松刷新我的 listView 中的数据。

是否存在比我现在使用的更智能的方法?我可以更直接地将我的 ModelCollection 绑定到 listView 吗?

还有一个问题:当我想在列表的标题下方添加小字幕时,如何扩展我的代码?

0 投票
11 回答
148748 浏览

android - 如何更新 ListView 中的单行?

我有一个ListView显示新闻项目的。它们包含图像、标题和一些文本。图像在一个单独的线程中加载(带有一个队列和所有线程),当图像被下载时,我现在调用notifyDataSetChanged()列表适配器来更新图像。这有效,但getView()被调用太频繁,因为notifyDataSetChanged()调用getView()所有可见项目。我只想更新列表中的单个项目。我该怎么做?

我目前的方法遇到的问题是:

  1. 滚动很慢
  2. 我在图像上有一个淡入动画,每次加载列表中的一个新图像时都会发生这种动画。
0 投票
1 回答
1139 浏览

android - 为什么不填充 listView?

我试图做一件非常简单的事情(显示一个填充的列表视图),但我做不到。我的代码不起作用,我找不到问题所在,所以我希望其他人可以帮助我:)

我定义了 listView 的 XML:

活动:

当我启动应用程序时,一切正常,显示了 XML 的 TextView,但没有 ListView 的迹象……我错过了什么吗?