myFlag step8:个人信息修改、flag的添加以及material design

本文介绍了myFlag项目的最新进展,包括后台的user servlet接口更新,如finduser、updateinformation和updatepassword,强调了密码确认的重要性。团队进行了白盒测试并解决了编码问题,选择了gb2312以优化中文支持。在前端,采用Material Design优化了注册页面,尝试了FloatingActionButton组件,并在安卓客户端实现了社区功能和申请监督功能,涉及自定义ViewPager和FragmentPagerAdapter的使用。
摘要由CSDN通过智能技术生成

这周,我们经过共同的考虑,开了一个站立会,审视了我们这几周的工作。当然,站立会每周最起码要开两次。这次的站立会与以往不同,主要是在期末进行了总结。经过我们的讨论,一致同意,进度正好,大家都很努力。
一 在后台
这次的主要任务就是对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作为申请监督界面的布局文件,部分代码如下所示:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值