文章目录
- 一、引言
- 二、设计
- 1、读取xml
- 2、下拉框Spinner
- 3、随机算法
- 三、实施
- 1、子元素随机(单位:班级)
- 2、父元素随机(单位:专业)
- 3、指定人数随机
- 4、指定人数混合排序
- 四、附件
一、引言
- 描述:这是2019年学习Android十天根据要求完成的点名系统,项目比较老了,那个时候也是刚开始学习Android,所以代码编写有点拉,基本没有规范,但是功能实现了,忘了当初怎么讲人员信息导入xml文件里了,好像是通过脚本将数据自动生成的xml文件。
- 难度:初级
- 知识点:
1、读取xml资源文件(不可能在代码里一个一个输入,一般都是读取Excel、xml等文件)
2、下拉框Spinner
3、随机算法 - 效果
二、设计
1、读取xml
- 观察xml文件
百来号人,我就不一一列出,同名同姓这么多,我也没贴头像,就懒得改数据了,如果遇到熟人,那可真是“泰库辣”。
- 读取xml
在Java中读取xml资源文件,读取里面的数据,放入一个String数组中。简易开发,方法很简单就一行代码。
String[] strings = getResources().getStringArray(R.array.yy19_1);
2、下拉框Spinner
下拉框在初始化阶段就自动读取xml文件,就无需通过Java载入数据
<Spinner
android:id="@+id/dm_yy_01"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="50dp"
android:entries="@array/yy19_1"
android:layout_centerHorizontal="true"/>
3、随机算法
(就粘贴部分代码,具体下载源码)随机出来的数据肯定不能有重复,所以需要在循环里添加一个查重机制。这是四年之后再次看代码,虽然是自己写的,但不得不说这个代码写得“真烂”。当然为了初学者能够明白,还是添加了这段代码,换做现在的我再去写,起码得用一个foreach,当然HashSet也不能少(懒得改)。
for (int x = 0; x < strings; x++) {
Random XingYun = new Random();
kelang = XingYun.nextInt(39) + 1;
for (int y = 0; y <= x; y++) {
if (index[y] == kelang) {
kelang = XingYun.nextInt(39) + 1;
y = 0;
}
}
index[x] = kelang;
}
三、实施
1、子元素随机(单位:班级)
读取指定班级人员信息,进行随机点名
2、父元素随机(单位:专业)
读取xml文件全部信息
3、指定人数随机
指定参数:人数
选择单位:班级
实现过程:查重(防止出现重复人员)
4、指定人数混合排序
根据班级编号排序整个专业的随机点名人员信息
适用场景:节约时间的随机点到
四、附件
- git地址:https://gitee.com/xu-pq/android-demo