Android题库系统中多种题型的设计与实现

2018-04-23 09:13涂小琴
软件 2018年3期
关键词:单选题题库填空题

涂小琴

(云南师范大学文理学院,云南 昆明 650222)

0 引言

目前,市面上较熟悉的题库系统是“驾考宝典”类的系统,针对学生的题库系统并不多,针对在校大学生考级的系统也是少之又少。大学生在校的时候要面对很多的考试,如大家都需参加的英语四六级的考试,计算机等级类的考试,以及各种专业证书类的考试,考试的题型各有不同,本文就对经常出现的几种题型进行研究,提出几种题型在Android题库中的应用方法。

1 选择题、判断题的实现

选择题分为单选题和多选题两种,实现的技术最简单的就是用 ListView,ListView中有自带的单选和多选功能,实现起来相当的方便。主要利用了ListView的ListView.CHOICE_MODE_SINGLE和ListView. CHOICE_MODE_MULTIPLE属性。

1.1 单选题的实现

单选题只需设置 ListView.CHOICE_MODE_SINGLE属性,具体实现方法如下:

1.2 多选题的实现

多选题只需设置 ListView. CHOICE_MODE_MULTIPLE属性,具体实现方法如下:

使用 LocalBroadcast可以方便试题界面和答题卡界面的自由跳转填空题的实现。

判断题的实现

判断题的实现与单选题有相似之处,只是选项只有两个,除了与单选题一样,利用ListView实现之外,还可以利用单选框RadioGroup来实现。

2 填空题的实现

2.1 常见问题

如何获取填空的焦点?获取焦点后如何调用软键盘?

填空题中,填空的预留长度应该留多少?是否需要固定?

若不固定,后面的文字是否需要后移,若需要,如何移?

对于填空题,以上三个问题都是在做需求时需要解决的问题。针对这三个问题,给出具体的解决方案。

2.2 解决办法

对于第一个问题,在做填空题的时候,如何获取所需填空的焦点?获取焦点很重要,只要获取了焦点才能将答案填入空格中。解决方法:把需要显示的内容转成SpannableString对象,通过ClickableSpan设置点击事件,设置setFocusable为 true来获取焦点。焦点获取后,在点击处弹出PopupWindow输入框,输入答案后点击确定,调用 fillAnswer方法将答案设置到填空处。

针对第二个问题,关于 position可以根据填空题来定,有设置答案填写范围的,也有可改变长度的。如设置范围 rangeList.add(new AnswerRange(4,20));

另外对于 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE是指新填入的字符格式的变化情况,可以设置前面填入的数据或后面填入数据的变化情况,它是用来标识在 Span范围内的文本前后输入新的字符时是否把它们也应用这个效果。下面给出四种情况:

(1)Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不应用设定的效果);

(2)Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面应用设定的效果,后面不应用);

(3)Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不应用设定的效果,后面应用);

(4)Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都应用设定的效果)。

针对第三个问题,若长度不固定,在超出空格范围时,如何将后面的文字后移?

解决这个问题可以通过更新答案的范围来进行。实现方法如下

3 图文混排的实现

在 Android中要实现图文混排的效果,可以有多种方式,下面介绍三种:

(1)在 TextView中使用 Compound Drawable属性;

(2)在TextView中使用Spannable多样式显示;

(3)在TextView中显示文本,用ImageView显示图片。

图1 图文混排效果图Fig.1 Picture and text mixing effect diagram

第三种方式应用的较多,若用在题库中,通常将图片所在位置存储在数据库中,通过 imageView来读取图片。关键代码如下:

holder.timu = (TextView)convertView.findViewById(R.id.timu); //用TextView读取题目

holder.fujian = (ImageView)convertView.findView ById(R.id.fujian); //用ImageView来读取图片,效果如图1所示。

4 结论

文中通过对不同题型的分析,给出不同题型在Android题库中的解决办法,解决问题的方法有很多种,并不局限我在文中提到的这些,在遇到问题的过程中,可以通过不断的尝试来找出新的方法。随着技术的更新,实现的方法也会随着更新。

[1] 艾小芹. 基于Android的英语学习系统设计与实现[J]. 电子设计工程, 2016(17): 73-76.

[2] 徐毅, 田春燕. 基于Android的移动英语学习平台的研究与实现[J]. 中国教育信息化, 2014(4): 89-91.

[3] 付婷婷. 基于Android的移动学习平台的设计与实现[D].贵州大学硕士论文, 2016-6.

[4] 马宏茹. 基于Android平台的中小学试题库系统的建设[J].软件工程师, 2015(18): 24-24.

[5] 万远辉. 基于Android平台的移动学习管理系统的研究与设计[D]. 江西财经大学硕士论文, 2016-6.

[6] 陈丽丹, 梁明杰. 课程试题库APP应用程序的设计[J]. 电气电子教学学报, 2016(8): 79-81.

[7] 宋志超. 面向移动终端用户的题目推荐与练习系统的设计与实现[D]. 内蒙古大学硕士论文, 2017-6.

猜你喜欢
单选题题库填空题
“勾股定理”优题库
“轴对称”优题库
“轴对称”优题库
孝心是道单选题
《护理研究》继续医学教育答题卡(2010年上旬版第7期~第12期)试题答案
《护理研究》继续医学教育答题卡(2010年上旬版第1期~第6期)试题答案
《护理研究》继续医学教育答题卡(2010年中旬版第1期~第6期)试题答案