这周,我们经过共同的考虑,开了一个站立会,审视了我们这几周的工作。当然,站立会每周最起码要开两次。这次的站立会与以往不同,主要是在期末进行了总结。经过我们的讨论,一致同意,进度正好,大家都很努力。
一 在后台
这次的主要任务就是对user的servlet接口进行了更新,主要的有finduser、updateinformation,还有updatepassword,在更新用户名密码的时候一定要注意对password的确认,还有新的password的两次确认,以保证用户的最好的体验。
经过我们的白盒测试,发现效果良好。于是我让队友进行了测试,让队友进行测试却是能够发现自己的问题,找出自己的不足,让自己取得更多的进步。
response.setContentType("text/javascript; charset=gb2312");
UserDao udDao=new UserDao();
PrintWriter pWriter=new PrintWriter(response.getOutputStream());
String tempPhone = "",tempId="";
JSONObject jb=new JSONObject();
User user=new User();
try {
tempPhone=request.getParameter("phone");
tempId=request.getParameter("id");
} catch (Exception e) {
// TODO: handle exception
}
if((tempPhone!=null)&&(!tempPhone.equals(""))){
long phone=Long.parseLong(tempPhone);
user=udDao.getbyPhone(phone);
}
else {
int id=Integer.parseInt(tempId);
user=udDao.getbyId(id);
}
jb.put("user", user);
pWriter.write(jb.toString());
pWriter.flush();
pWriter.close();
在写代码的时候,自己也不断的发现了编码的问题,编码问题确实是一个比较重要的问题,按照一般的原则,使用utf-8能够解决大部分问题,但是不知道怎么回事,使用utf-8的时候还是出了一些问题,所以我们决定使用gb2312编码,gb2312编码对中文的支持更加好,能够更好的帮助我们解决问题。
二 在页面
使用material或者其他工具尝试对注册页面进行优化
因为注册界面的组件相对单一,整体色调也相对单一,相关的逻辑等比较简单,故优先尝试优化注册界面,同时兼顾整个系统逻辑间的优化,
使得不同模块间的功能种类以及跳转关系尽量达到平衡状态。
比较好的开源项目:
1、 FloatingActionButton
功能:一个类似Android版Google+浮动功能按钮的控件,可以响应ListView的滚动事件。当列表向上滚动的时候会自动显示,向下滚动的时候自动隐藏。
上面这个是一个动图
这是我们这次的尝试
尝试新的菜单按钮:
使用效果,gif图片效果不怎么样
使用说明:
xml中:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sat="http://schemas.android.com/apk/res/android.view.ext"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.view.ext.SatelliteMenu
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:layout_margin="8dp"
sat:satelliteDistance="170dp"
sat:mainImage="@drawable/ic_launcher"
sat:totalSpacingDegree="90"
sat:closeOnClick="true"
sat:expandDuration="500"/>
</FrameLayout>
之后再java代码中添加菜单项
SatelliteMenu menu = (SatelliteMenu) findViewById(R.id.menu);
List<SatelliteMenuItem> items = new ArrayList<SatelliteMenuItem>();
items.add(new SatelliteMenuItem(4, R.drawable.ic_1));
items.add(new SatelliteMenuItem(4, R.drawable.ic_3));
items.add(new SatelliteMenuItem(4, R.drawable.ic_4));
items.add(new SatelliteMenuItem(3, R.drawable.ic_5));
items.add(new SatelliteMenuItem(2, R.drawable.ic_6));
items.add(new SatelliteMenuItem(1, R.drawable.ic_2));
三 安卓
在这半周中,客户端主要完成了两个功能,社区功能和申请监督功能。
一、社区功能
在之前的设计中,社区界面是主界面中三个选择框中的一个,所以应该定义在MainActivity类中,并使用ViewPager控件进行页面切换。但考虑到基本的ViewPager不能完全满足界面的要求,故在包widget中自定义CustomViewPager继承ViewPager,进行界面的调整,部分代码如下所示:
在此基础上,在包adapter中自定义SampleViewPagerAdapter继承FragmentPagerAdapter,以适配自定义的CustomViewPager,部分代码如下所示:
至此,准备工作已经完成,定义fragment_community.xml作为社区页面的布局文件,部分代码如下所示:
最后,在类MainActivity中编写社区功能的实现代码:
二、申请监督消息:
用户是通过浏览社区界面,发现要申请监督的Flag后,点击进入详细信息界面,再申请监督的。我们将该功能定义在SuperViseDetailActivity类中,只需通过Intent对象获取该Flag的详细信息,显示在界面上,当用户点击“申请监督”按钮后,向服务器发送请求,并处理返回的结果就好。部分实现代码如下所示:
然后进行界面的编写工作。定义activity_supervise_detail.xml作为申请监督界面的布局文件,部分代码如下所示: