我的应用程序的功能可以模仿wanelo之类的东西。
用户将在一个活动中输入他们想要购买的搜索词。他们将获得与该搜索词匹配的项目列表。因此,ListView
将包含Item
s。AnItem
有很多属性,主要有:
id
- 对应Item
于数据库中的 iddate_modified
- 时间戳知道是否Item
已更新remote_directory
Item
- 指向的资产(如图标和其他图像)的基本目录的 URL 。URL 的格式如下:http://my.domain.com/items/a1bc234d/
wherea1bc234d
是随机生成的,由date_modified
.remote_dir_name
- 的子串remote_directory
。从上面的示例中,该值将是a1bc234d
。
从搜索结果列表中,用户可以标记要稍后查看的项目。这将触发几件事:
- 首先,我想将 s 添加到代表用户“下载”的 s 的
Item
不同位置。ListView
Item
- 然后,我想实际下载所有的
Item
数据:描述,所有资产remote_directory
。这些东西被存储在我的应用程序的内部存储文件夹中remote_dir_name
:/data/data/my.app.package.name/files/a1bc234d/
。
这些“下载”的项目旨在离线模式下查看。
此“已下载”ListView
对应于不同的 Activity,并且将具有显示下载状态进度条的列表项Item
。此外,这ListView
应该是可编辑的:使用应该能够删除和重新排序Item
列表中的 s。
最后,“下载”ListView
需要持久化。它应该保持秩序。搜索结果的ListView
不需要持续存在。
我在弄清楚如何存储Item
下载的 s 列表时遇到了很多麻烦。如果列表项正在下载,“下载”ListView
需要知道何时更新列表项的进度条。我认为将 s 存储在数据库中有点矫枉过正,Item
因为我会不断更新一行的列,直到下载完成。我应该如何在这两个ListView
s之间传递这个下载状态信息?