博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Anytime项目开发记录4
阅读量:5360 次
发布时间:2019-06-15

本文共 1347 字,大约阅读时间需要 4 分钟。

做事情列表,我在程序中命名为“正在做”。

这是一个Fragment,应用的主页面,由一个MainActivity加上DoingListFragment和PersonFragment组成。PersonFragment之后的记录再讲。

本次主要是来说一下DoingListFragment的实现。

其中,DoingListFragment主要是由ExpandableListView来构成的。用来实现一个可伸缩列表。

这里出现一个问题,我希望ExpandableListView的数据是从服务器得到的,从而我可以动态的添加一些列表内容,方便程序内容的丰富。

基于这个希望,在DoingListFragment展示的时候,要动态的更新列表内容。也许大家觉得这里并不麻烦,其实,麻烦的还在后面。

直观一点,我截图给大家看:

这里,生活、工作、休闲,是一个比较大的分类,而下面的一些睡觉、走路、开车等等,又是一些细小的分类。

当我们从AVOS上面获取数据的时候,获取到的只是一个列表形式的数据,也就是说,我只可以获取到较大分类的列表,和多个子分类列表。

这里就有多种解决方法:

  1. 同时发送获取所有数据的请求,这样的好处就是节省时间。同样,这样产生的问题就是,何时更新界面来显示数据?所有数据都获取完成吗?那么,我如何判断所有数据都获取完成?AVOS提供的获取数据的方式是异步的,这样判断数据均传输完成我没有想到什么比较好的方法。所以,我放弃了这个方法。也许大家会有一些其他的方法,欢迎留言讨论。

  2. 先获取较大的分类,得到较大的分类后,循环的单独获取其中每一个项的子分类。这样的问题是,时间和上一个相比要长出很多。方便的就是,我很容易知道什么时候更新界面来显示数据。

我选择了后一种方式来进行数据获取,测试结果还是非常令人满意的,并没有想象中的获取时间长,而是非常快的获取到了数据。也许是因为数据量比较小的缘故吧。

获取到的数据,我将其封装成了一个多个DoingListData,来方便在程序中进行对象化的处理。

 

在点击子类列表中的某一项时,跳转到DoingDetailActivity,来显示正在做的人数有多少,本次获得了什么成就。

在跳转到DoingDetailActivity后,从服务器查询同时在做此时的人,这时,查询前10分钟同样点击过这个项目的人的数量并返回,再之后,将本次的查询记录插入到数据库中。这时,如果用户退出后第二次点击,那么就会将自己刚刚的记录也算在其中,所以,在第一次查询的时候,将自身账号排除。

写到这里,我突然想到了,这里有一个问题!如果A君点击了点击了睡觉项,退出,再点击睡觉项,查询时排除了自身,看到的没有自己的内容,但是,如果B君在A君点击2次之后,再查询的话,就会得到A君的两条数据,B君将会显示有2个人同时在做这个事情!但是B君应该要显示的是1个人同时在做此事!我需要group by一下。。。骚后修改一下。。。

关于成就要如何做,我还在进行,在后续的记录中,在写出来和大家分享。

下面是Android端的类图:

这个是AVOS数据设计的内容:

转载于:https://www.cnblogs.com/maomishen/p/3585381.html

你可能感兴趣的文章
MES架构
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>
关于标签之间因为换行等问题造成的空白间距问题处理
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>