基于Android的问卷调查客户端题目分页加载实现.doc

基于Android的问卷调查客户端题目分页加载实现

摘 要:本文根据对Android问卷调查客户端问卷题目的分析的结果,设计出题目加载视图的布局,并对题目分页加载的实现提出了详细方案。

关键词:Android;问卷调查客户端;分页加载

中图分类号:TP311.52

1 基于Android的问卷调查客户端简介

基于Android的问卷调查系统由两个子系统构成,分别为基于Windows的问卷设计子系统和基于Android的调查客户端子系统。两端的问卷数据接口使用XML标准数据文件。基于Android的问卷调查客户端核心模块为问卷问题的分页加载。

2 问卷视图的布局分析

问题的加载用到多个视图布局的嵌套。questionActivity下的问题列表视图需要一个布局,问题列表视图下选择题的备选答案列表又需要一个布局,备选答案列表中答案项根据单选或多选又需要不同的答案项布局。列表嵌套布局如图1所示。

3 问题分页加载显示实现主流程

问卷问题分页加载显示程序实现主流程如下所述:

(1)在questionActivity问卷界面类下将XML问卷数据解析到paper问卷对象中。

(2)questionActivity获得paper对象后调用GetPaperCount方法,根据问卷各问题的分页索引获取到问题分页总页数。

(3)当要加载显示某页对应的问题列表时,通过调用titleAdaper适配器对象的方法getPageQuestionList,传入当前页码获取到当前页的问题对象列表questionPageList。

(4)在questionActivity对应的问题列表视图适配器类titleAdapter继承自BaseAdapter适配器基类。在titleAdapter下重写getCount、getItem、getItemId、GetView系列方法,使getCount返回questionPageList列表的长度,getItem获取当前position的问题对象,getItemId返回当前position(位置)值。GetView方法在questionActivity对应的列表视图(ListView)对象的请求下每次自动得到一个position的问题的视图。如果问题列表questionPageList长度为N,则GetView被自动请求N次获得questionPageList列表的所有问题视图给questionActivity视图对象。

4 分页计算

GetPaperCount方法用于根据问卷对象paper下的问题列表各问题的分页索引index计算总页数。根据用户需求,问题列表各问题在哪一页,由问卷设计员设计问卷时来设置。假设某问题在第N页,分页索引应该设置为(N-1)×100到(N-1)×200-1之内。比如某问题在第2页,其索引值应为100到199之间的值。

由此可见,GetPaperCount方法获取总页数算法实现流程如下所述:

(1)设置最大索引变量maxIndex,初始化为0。并循环遍历paper问卷对象下的问题列表,获取所有问题的最大索引值到maxIndex。

(2)遍历结束后,计算总页数为:count=(int)(maxIndex/100)+1。

5 根据当前页码获取问题列表

getPageQuestionList方法用于根据当前页码获取问题列表。本方法根据传入的页码计算出问题的对应的索引范围,遍历paper对象问题列表的所有问题,获取到问题分页索引处于该索引范围的问题对象并添加到分页问题列表questionPageList中。

questionActivity对应的问题列表视图数据适配器类titleAdapter中的GetView方法的运行机制在前面已经做过叙述。GetView方法单次获取问题对象视图实现流程如下所述:

(1)GetView方法得到questionActivity问题列表视图quelist一次视图请求即获取到请求位置position。

(2)获取分页问题列表questionPageList当前position下的问题对象question。

(3)从单个问题显示的布局文件question_item.xml中获取用于显示问题内容的TextView对象txtTitle和用于显示选择题备选答案列表或问答题文本编辑框的ListView对象lvChecks。

(4)获取question对象的_qTitle(问题标题)字段的值加载到txtTitle。

(5)获取question对象的_qType(问题类型)字段并判断。如果_qType为单选题,则为备选答案视图对象

android问卷分页显示,基于Android的问卷调查客户端题目分页加载实现.doc相关推荐

  1. Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)

    一.引言    本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于Intelli ...

  2. Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建

    一.引言 本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于IntelliJ I ...

  3. Android中设置显示文本,Android文本显示控件-TextView属性详解

    android:autoLink //设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) andr ...

  4. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

  5. android 判断webview加载成功,Android:如何检查使用webview.loadUrl时url的成功加载

    不幸的是,目前在WebView中没有简单的方法来确保页面上的所有内容都已成功加载.我们希望在未来的版本中提供更好的API.让我解释一下你现在可以做什么. 首先,为了检测阻止WebView连接服务器加载 ...

  6. Android插件化学习之路(一)之动态加载综述

    前段时间,公司项目完成了插件化的开发,自己也因此学习了很多Android插件化的知识,于是想把这些内容记录下来,本次带来Android插件化的第一篇:动态加载综述 Android插件化学习之路(一)之 ...

  7. u-boot的linux内核映像加载,基于U_Boot的Linux内核映像加载与引导功能实现.pdf

    基于U_Boot的Linux内核映像加载与引导功能实现 20 10 8 ( ) Aug . 2010 10 4 Journal of Langfang T eachers College( N atu ...

  8. qiankun 两种集成微应用的方法(基于路由配置微应用、手动加载微应用)

    目录 1.qiankun 两种集成微应用的方法 2.基于路由配置微应用 1.1 registerMicroApps(apps, lifeCycles?) 注册微应用配置信息 参数 类型 用法 1.2 ...

  9. android开发兼职app,基于Android的大学生兼职APP的设计与实现.docx

    基于Android的大学生兼职APP的设 计与实现 弓I 言(In troduction) 就业是民生的问题的根源,要想推动实现高质量高品质的就业,必 须关注大学毕业生,了解大学生的就业形势,做岀相应 ...

  10. android室内定位+3d,基于Android平台的手机室内定位及导航的设计与实现

    摘要: 随着无线通信网络技术的发展,智能手机逐渐融入到人们的日常生活中.它不仅满足当今人们对于通话短信等基本功能的需求,而且还满足人们对于娱乐.上网.社交等功能的需求.导航功能是现在人们常用的一个功能 ...

最新文章

  1. 原生js实现触摸滚动轮播图
  2. Android 混淆打包不混淆第三方jar包
  3. 对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结
  4. 0025-中点位移的速度
  5. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言
  6. webrtc agc matlab,c++ WebRTC AGC(自动增益控制)
  7. JavaFX缺少的功能调查:表视图
  8. C++中Future和Promise的一种简单实现
  9. 2017.9.2 王室联邦 失败总结
  10. win11更新特别慢怎么办 windows11更新缓慢的解决方法
  11. Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
  12. 小米笔记本网卡驱动失效,无法联网
  13. Webgl-超级基础随笔2-矩阵与绘制Cude
  14. 新购电脑已装显卡,但控制面板里找不到“NVIDIA 控制面板”怎么办?
  15. python数据驱动参数化登录_HttpRunner 参数化数据驱动
  16. 青岛再添新动脉|唐河路—安顺路预计年底通车
  17. win7的Par虚拟机版优化(parellel desktop)
  18. em表示什么长度单位_css中pt、px、em、ex、in等这类长度单位详细说明
  19. 爱词霸汉语站联合多家官方媒体发布中国十大流行语
  20. ASP.NET 2.0收集

热门文章

  1. nand ECC 算法记录
  2. Java之多线程断点下载的实现
  3. Oracle系统查询的语句
  4. 漫谈 Clustering (追忆篇): Regularized GMM
  5. mysql 没有三级模式两级映像_数据库三级模式/两级映像
  6. 连锁加盟网站源码_连锁60秒:招商只是开始,养商才最重要
  7. 拓端tecdat|R语言资产配置: 季度战术资产配置策略研究
  8. 拓端tecdat|拟合R语言中的多项式回归
  9. springboot 整合JWT token验证机制
  10. 【OpenCV图像处理】激光条纹线段提取、中心线提取