APP下载

基于Android平台的招生宣传系统设计

2018-11-15殷西祥王康康

关键词:服务端列表客户端

殷西祥 王康康

(安徽商贸职业技术学院电子信息工程系, 安徽 芜湖 241002)

考生为了填报一个适合自己的高校,需要全面了解高校的情况。考生及其家长一般会去浏览各个高校的网站,通过收集分析和比较这些网站上发布的信息,来选择自己适合报考的学校。网络上的高校网站是独立而分散的,考生要一个一个地去搜索查看各个高校的网站,既费时又费力,而且还未必能够顺利地找到自己需要的或对自己有用的信息。为了方便考生及其家长获取各个高校的有关信息,同时也为了方便高校进行招生宣传,我们研究设计了基于Android平台的招生宣传系统。

我们设计的这个招生宣传系统,将各个高校的招生信息进行汇总和处理,以简洁方便的形式予以展示,有助于考生快捷地搜索获取自己需要的信息。

1 系统的模块设计

该系统包括服务端和客户端2个部分。服务端与客户端通过http协议实现JSON数据交互。系统采用MVP模式和Material design设计风格,使用okhttp网络框架实现与服务端进行请求交互。开发环境为:Android Studi2.3.3.0,eclipse-jee-neon-3-win32-x86_64;数据库采用Mysql 5.7;辅助开发工具为Adobe Photoshop CS6等[1]。

1.1 系统的功能模块

系统的服务端包含用户权限管理模块、学校管理模块、专业管理模块和招生信息管理模块等,为Android客户端的数据显示完成基础数据获取和交互等功能。在系统的Android客户端,用户通过注册登录,可以浏览从服务器返回的学校招生信息、学校专业介绍、专业招生和话题等模块(见图1)。其中,话题模块类似于BBS,可以发布或回复用户感兴趣的主题。

图1 系统的功能模块

招生宣传系统分为服务端和Android客户端,由管理员进行数据管理,用户通过Android端查看。系统根据用户的选择,显示对用户有价值的数据。系统数据管理方便、灵活,数据进行加密,保证数据的安全性。系统界面简洁美观,操作简单。客户端和服务端系统的活动如图2和图3所示。

图2 Android端系统活动图

图3 服务端系统活动图

2 系统数据库的设计

根据面向对象的设计方法,需要设计好系统的数据库,根据数据库中的表来聚合成各项功能。在明确系统功能后,确定系统中的各个实体。通过分析实体之间的关系,生成相应的数据表;每张表都能很好地表述相应的实体。表与表之间相互约束,保证数据的一致性、完整性。

该系统创建的数据表有:用户表、学校表、系部表、专业表、专业内容表、话题表、话题评价表、招生资讯表、用户关注学校表。系统E-R模型如图4所示。其中,学校表、话题评论表和话题表,受用户表的用户编号字段约束;系部表,受学校表的学校编号字段约束;专业表,受系部表系部编号字段约束;专业内容表,受系部表的系部编号字段和专业编号字段约束;话题评论表,受话题表的话题编号字段约束;招生资讯表,受学校表的学校编号约束;用户关注学校表,受学校表的学校编号字段和用户表的用户编号字段约束。

3 系统客户端主要功能的实现

服务端提供用户登录、用户注册、获取招生信息、获取学校信息等接口。Android客户端通过网络请求以JSON数据格式与服务端进行数据交互,实现用户登录、注册、查看招生信息、学校信息等功能。

3.1 登录界面

登录界面布局,使用FrameLayout。在界面中心位置是ProgressBar控件,默认设置为隐藏状态。当用户点击登录发起网络请求时,该进度条出现,给用户友好提示;当网络请求完成,该进度条则回到隐藏状态。用户名和密码输入框使用TextInputLayout包裹,点击时,提示文本会移动到输入框的左上角,并有字体相应变小的效果。在密码输入框设置passwordToggleEnabled属性,让其密码实现正常文本和密文的相互转换。

用户输入用户名和密码,点击登录按钮发起网络请求,系统通过okhttp3网络框架与服务端进行JSON数据交互,核对信息是否正确。如果不正确,服务器返回错误信息,以对话框的形式显示给用户。如果正确,则跳转到选择关注学校界面,并将用户的信息用SharedPreferences进行保存。用户选择好自己关注的学校,点击确定,进入主界面。

3.2 学校关注界面

采用ListView显示学校列表。每一个ListView的条目,由TextView和Button组成。TextView显示学校名称,用户点击Button,会改变Button颜色和字的内容,以此表述关注该学校和取消关注的状态。

在Activity的onCreate中,向服务器发起网络请求,获取服务器端的学校列表,填充到ListView的适配器中。当学校列表获取成功,则根据用户向服务器发起的请求,查询用户已经关注过的学校,并改变学校列表中该学校的关注状态。用户点击确定,进入主界面后,系统将用户关注的学校用SharedPreferences进行保存。效果如图5所示。

图4 系统 E-R模型图

3.3 主页界面

主页界面设计,使用BottomNavigationView和Fragment及ViewPager的配合,实现底部导航,左右切换的效果。底部导航分别为首页、学校介绍、话题、个人中心。首页界面采用ListView以列表的方式展示招生信息,顶部通过ListtView的addHeaderView方法,添加一个轮播的视图。轮播图使用ViewPager加 PagerAdapter,实现其效果(如图6)。

在用户点击某个招新信息时,可跳转到相应的招新信息详情页。招新信息详情页的内容是后台通过富文本编辑器保存的html文件,通过WebView进行显示。为了减少用户等待内容的加载时间,内容显示先加载文字,等文字显示在页面上之后再加载图片。

3.4 学校介绍页

学校类列表页采用GridView,每行两列。解析SharedPreferences中的用户关注的学校信息,使用CardView以卡片的形式展示相应信息(见图7)。

功能实现:卡片上展示获取到的学校图片和学校名称。学校的标志性图片是通过Glide加载服务器返回的图片地址。Glide是一个很好的图片加载库,加载图片非常流畅。点击卡片,可以进入学校的专业介绍和学校风景页。

3.5 话题界面

RecycleView是Android 5.0之后的新控件[2-3],其对View的复用和回收有很好的效果。Recycle-View配合LayoutManager,可以很好地控制布局方式。话题界面使用RecyclerView配合LayoutManager,以线性布局的方式展示用户发布的话题。

图5 学校关注界面

图6 首页界面

图7用户关注的学校列表页

点击每个话题条目,可以查看该话题的评论。在界面的右下角有一个悬浮按钮,使用FloatingActionButton控件实现。用户点击按钮,可以增加话题,供大家讨论。为使该悬浮按钮不影响用户查看话题列表,设置了RecyclerView的滑动时间。当用户上下滑动时,隐藏悬浮按钮;停止滑动时,悬浮按钮出现。

3.6 个人中心界面

个人中心界面的整体布局,采用线性布局方式。顶部读取SharedPreferences中保存的用户信息,展示用户头像和用户名,点击会跳转到用户信息的详情页。页面中的功能列表,采用ListView实现。用户可以查看自己关注的学校、发布的话题等。用户还可以查看该软件的一些信息。

用户可以在此页面点击“我的关注”,查询到自己关注的学校信息;点击“我的话题”,可以浏览自己发过的话题,并管理自己发布的话题;在“我的收藏”中,用户可以查看自己以前在该系统中收藏的文章;在“我的消息”中,可以查询系统给用户推送的消息;在“关于”中,可以查看该系统的一些版本信息。

4 结 语

上面介绍的基于Android平台的招生宣传系统,采用MVP模式和Material design设计风格,使用okhttp3网络框架实现与服务端通过JSON数据进行信息交互。使用该系统,有助于高校的招生宣传工作实现无纸化,也方便了用户的信息获取。该系统的后期建设,可以进一步对服务器端进行相关的功能升级,如使用第三方推送平台完成用户关注学校的信息推送等,为用户提供更加个性化的和更深层次的服务。

猜你喜欢

服务端列表客户端
学习运用列表法
扩列吧
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
列表画树状图各有所长
2011年《小说月刊》转载列表