Anytime项目开发记录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数据设计的内容:
Anytime项目开发记录4的更多相关文章
- Anytime项目开发记录0
Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...
- Anytime项目开发记录2
注册,登陆于密码找回.这是这次记录的主要内容. 首先,我们来看类图: 因为一直在改,所以与第二篇介绍项目框架时的图会有一些不一样. 代码都是非常简单的. 由于在注册和登陆这里,需要弹出一些对话框告诉用 ...
- Anytime项目开发记录3
应用想要做的好,反馈必然少不了~哈哈~ 用户的反馈.意见.建议,甚至是谩骂,都是对项目的反馈. 如果一个应用没有听取用户的反馈,那么应用会离着用户越来越远.懂得用户要什么是一回事,听得到用户的反馈,则 ...
- Anytime项目开发记录1
关于Android APP 应用设计,我并没有接受过系统的学习. 下面,是按照我一直以来的方法来进行编辑. 由于在程序开始之前并没有画类图,这里简单的讲述一下程序是如何设计的. 自己实现了一个Appl ...
- TMS320F28335项目开发记录1_CCS的使用介绍
CCS使用介绍 一.前言 本系列文章记录本人实际项目开发时对ti的DSP28335,以及CCS开发环境等的学习与记录,相对于2812来说,28335的资料还是比較少的,只是原理是相通的,28335说白 ...
- Unity3D Demo项目开发记录
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行入门了,正所谓好记性不如烂笔头,更何况本人并非专业从事unity3D开发,会一点C#但也并不熟悉,为了避免后期遗忘,因此特意整理了一个D ...
- TMS320F28335项目开发记录5_28335之CCS编程基础
CCS开发环境已经为我们封装好了很多片内外设寄存器的结构体,我们仅仅须要包括对应的官方的头文件就能够使用了,那么它的内部详细是怎样实现的呢? 以下来一个典型的样例: 1.使用结构体和联合体 A.用st ...
- 用vue前后端分离项目开发记录
一:软件安装 1.1 检测node 是否安装 1.2 安装淘宝镜像 cnpm 1.3 安装vue-cli 1.4 检查是否安装vue-cli脚手架成功 1.5安装webpack 模块管理工具 二:创建 ...
- TMS320F28335项目开发记录6_28335之cmd文件具体解释
1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间. 2.C语言生成的段 C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据 ...
随机推荐
- hihocoder 后缀自动机四·重复旋律6
题目 对于\(k\in[1,n]\)求出长度为\(k\)的子串出现次数最多的出现了多少次 我直到现在才理解后缀自动机上的子树和是什么意思 非常显然的一点是 \[endpos(link(u))⊇endp ...
- 【[SDOI2010]粟粟的书架】
第一问的做法好像不太一样 首先第二问非常简单,直接在主席树上二分就好了,单次查询的复杂度\(O(logn)\) 第一问并没有想到有二分这种神仙操作,依旧用的是主席树 我们可以对矩阵建出主席树,也就是像 ...
- idea连接sqlite
首先下载驱动 官网链接:http://mvnrepository.com/artifact/org.xerial/sqlite-jdbc 打开idea 第一步:右边 数据源 (如果没有显示单击这里,有 ...
- 【luogu P3950 部落冲突】 题解
题目连接:https://www.luogu.org/problemnew/show/P3950 1.像我这种学数据结构学傻了的 2.边权化点权 所有点权初始化0 3.对于战争 将深度较深的-1,对于 ...
- 【办公-Word-VB】人民币大写转换-带完整注释
完整代码见:我的CSDN博客 -------------------- 应公司财务人员的请求,需在Word中做个:输入阿拉伯数字,自动转换成大写,并填充到Word控件中对应的亿.万.千控件格子的功能, ...
- 整理关于 VS Code 一些小技巧:系列一
官方介绍 VisualStudioCode是一个轻量级且功能强大的源代码编辑器,它运行在桌面上,支持Windows.MacOS和Linux系统.它提供了对JavaScript.TypeScript和N ...
- Javafxml
FXML入门教程 本部分教程包括两部分内容: 为什么使用FXML(基本介绍以及用FXML创建用户界面的好处): 使用FXML创建用户界面(通过创建简单登录应用来完成本教程部分). 1.1 为何使用FX ...
- 使用js获取表单元素的值
function getParams(formName) { var frmMain = document.getElementById(formName)?document.getElementBy ...
- leetcode算法之 Single Number
题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 要求: 时间复杂度O(n),空间复杂都O(1) 示例: 输入: [2,2,1] 输 ...
- Linux性能监控工具 gtop
给大家介绍一款性能监控工具,个人对比界面比top美观,常用指标比较清晰毕竟top上的指标不是每个人都能熟悉,也不是所有指标参数都需要看,对于新手也不便查找,好了说的再多先上图大家参观一下. 1.安装需 ...