教育管理系统——android家长客户端

  最近做了一个android的小项目,服务器端已经搭建好了,使用了spring MVC作为后端技术,发布了一系列web接口来接受客户端提交的数据和返回客户端请求的数据,web端使用了ext js来作为前端技术。同时还需要一个android客户端和ios客户端,临时先开发了一个android客户端,因为服务器端接口已经写好了,安卓端这边只需要访问这些接口就可以获取需要展示的数据和提交数据即可,开发难度不大。因为时间比较紧迫,所以没有做详细的设计,导致后来有很多其实比较冗余的代码,其实可以通过良好的设计来减少代码量,做好继承就可以了,这一点是一个教训,以后在进行面向对象的开发时需要注意。另外也没有做缓存机制的设计,也就是说应用所需的所有数据都是在用户请求时去服务器端获取的,本地不会保存数据,这样做减少了逻辑的复杂度,有利于开发速度。但是以后需要缓冲机制的话改动可能比较大。

  下面简单描述一下这个应用的逻辑流程,首先用户必须要进行登录验证才可以进入应用,这样做的目的是减少业务逻辑的复杂性。当用户验证成功进入应用后,会展现给用户三个tab,分别是新闻通知tab,mytab,message tab,其中新闻通知是用来展示学校发布的各种新闻和通知,my tab是用来提供用户查询各种信息的地方,message是用来查看和发送站内信给老师的地方。下面对这里面用到的各个组件或者机制进行一下描述。

  Thread与Handler:当用户进行登录验证或者其它需要连接网络的操作时,都需要使用thread,在thread中使用httpclient来进行网络连接,当获取到服务器传输来的数据并进行处理后,网络线程通过handler机制来与开启网络线程的线程进行数据同步的工作,handler一般是作为主线程中的对象传递给thread的,因此在handler中可以对主线程中的ui进行处理等工作。在java中,一切都是对象,thread也是,thread中有一个run函数是线程开始后所执行的函数,当在主线程中new出一个thread后,需要调用start这个函数后线程才会执行。

  fragment:现在的应用,ui越来越复杂,原来单纯的在activity中构建ui变得不太灵活,现在安卓中引入了fragment机制,一个activity中可以使用多个fragment来构建ui界面,这样在一个activity的生命周期中就可以方便的构建复杂的ui界面而不需要切换activity。类似于activity中的oncreate方法,fragment中的oncreateview负责fragment初始化时的主要工作,此方法返回一个此fragment的view给activity,fragment也使用布局文件来初始化界面,使用inflater的inflate方法来初始化界面。

  listview:本应用中主要使用listview控件来展示数据信息,多个listitem来构造一个listview,listitem界面可以使用布局文件来定义,同时listview有一个addheader方法,可以在listview头部添加一个view来显示在listview的头部。同时,listview可以实现onscrolllistener接口,来实现listview拖动的效果。

  adapter:适配器,类似于listview这样的控件,需要适配器来填充数据,适配器一般会和一个list数据结构绑定,安卓系统会根据list的大小来构建listitem的数目和内容。

  这里描述的四个控件都是安卓应用中比较重要的四个控件,这里只是简单描述,具体的内容比这里描述的更复杂,有时间的话再仔细描述一下这四个控件的具体用法。

时间: 2024-10-07 20:05:40

教育管理系统——android家长客户端的相关文章

Android中客户端请求服务器端的方式讲解(一)附源码

Android中客户端请求服务器端的两种方式:Post方式和Get方式 在这里不直接赘述了,直接上源码如下: (1).Post的方式: /** * Post的请求方式 * * @param model * 请求序号 * @param paramList * 客户端请求的数据参数列表 * @return */ public JSONObject doPost(int model, List<NameValuePair> paramList) { try { // 客户端向服务器发送请求的数据 L

Android:解决客户端从服务器上获取数据乱码的方法

向服务器发送HTTP请求,接收到的JSON包为response,用String content = EntityUtils.toString(response.getEntity(),"utf-8");解码还是出现了中文乱码,在后面加了 String name = new String(response.getBytes("iso-8859-1"), "UTF-8"); 也无济于事.想到服务器好像是用URLENCODER编了码的,怀着试一试的态度

android多线程-客户端

预备知识: 一.android每个客户端分为两条线程: 1.主线程:负责生成主界面,并响应用户动作,并且把用户输入的数据写入socket对应的输出流. 2.子线程:负责读取从服务器发送过来的数据,并且显示到程序界面上. 二.Handler消息传递机制 (一)Handler的两个作用: 1.在新启动的线程中发送消息. 2.在主线程中获取.处理消息. (二)Handler相关的几个组件: 1.Message:Handler接收和处理的消息对象. 2.Looper:每个线程只能拥有一个Looper.

Android新浪微博客户端(六)——Home界面的ListView

原文出自:方杰|http://fangjie.sinaapp.com/?p=184转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.首先是ListView的adapter. 因为微博列表的Item不是规则的,比如说有些微博有转发子微博,有些没有,有些有图片,有些没有图片,所以说很不固定.这里就采用BaseAdapter,要自

开源:我的Android新闻客户端,速度快、体积小、支持离线阅读、操作简便、内容展现形式丰富多样、信息量大、功能全面 等(要代码的留下邮箱)

分享:我的Android新闻客户端,速度快.体积小.支持离线阅读.操作简便.内容展现形式丰富多样.信息量大.功能全面 等(要代码的留下邮箱) 历时30天我为了开发这个新闻客户端APP,以下简称觅闻 http://m.yunxunmi.com/ 由于本人比较愚钝,不太擅长各种开源代码的运用,因此全部从0开始开发,期间开发了: 一个新闻采集器(C++),截止目前为止已经连续运行20多天没出现任何故障,采集接近150个大中型新闻分类网站,采集器下载及介绍网站预计下周免费发布,风格类似我的即时通讯网站 

Android实践--Android Http 客户端编程之GET

Android Http 客户端编程之GET 说起Http编程,不尽然想起GET和POST两种请求方式,本文以简洁明了的的步骤和说明,将Android中常用的Http编程的方式列举出来,给刚刚在Android路上起步的奋斗者参考和指引,希望快速上手应用Android Http编程的同仁可以先绕过下面一段话. 做一件事之前,我们是否能驻足想一下要做这件事,我们需要做哪些工作,然后在经验中积累出模板思路和步骤,在程序界通常用设计模式来概括这些工作良好的解决方案.有了这些总结积累,这样我们就能举一反三

Android聊天客户端Demo开源了.基本的聊天功能基本上都有了,数据库也已搭建,服务器用的baiduPush。可以直接拿来用!!。(希望两个手机通信的话,改一下pushid就可以)

Hello: 我是在飞,最近写了个聊天的Android客户端.今天将此demo分享出来.原澳门大家可以到github直接下载.有问题可以联系我. 几点说明: 1:android聊天客户端的demo,包含了im的基本功能. 1.1比如gif动态表情展示.语音.聊天表情.拍照.多图的发送.大图片的处理.listview缓存的处理等. 1.2数据库也已经搭载好,算是个完整项目,可以直接拿来用. 1.3服务器使用的是baidu push服务.(图片暂时没有处理上传服务器,只是上传了本地sdcard的pa

Android新浪微博客户端(七)——ListView中的图片异步加载、缓存

原文出自:方杰|http://fangjie.sinaapp.com/?p=193转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.ListView的图片异步加载 我们都知道对每一个Weibo Item都有用户头像,而且每一条微博还可能带有图片.如果在加载列表的同时加载图片,这样有几个缺点,第一很费事,界面卡住,用户体验很不

android 新浪微博客户端的表情功能的实现

这是一篇好文章,我转来收藏,技术的最高境界是分享. 最近在搞android 新浪微博客户端,有一些心得分享弄android客户端表情功能可以用以下思路1.首页把新浪的表情下载到本地一文件夹种,表情图片的命名要用新浪微博表情原来的命名比如 新浪的害羞表情是shame.gif 那么你在本地也得命名为shame.gif,命名相同主要是为了能够匹配表情对应的code.2.把本地的表情都放进android的资源文件里----drawable下面3.访问新浪的表情接口(新浪返回的数据类型有json和xml两