引言
不知不觉,我们的创新项目实训已经过去了大半,按照我们事先商定好的计划,这周的任务主要是安卓客户端与后天有关具体的Flag的功能的相关实现,计划能顺利实施,得益于我们前期花费大量时间的讨论以及对工作量的正确的评估。本周的主要任务有:
- 客户端 :我的好友消息和Flag详情
- 后台:DAO层的详细逻辑梳理架构
- 前端:客户端设计工作的细节调整以及界面优化
客户端+前端
1、我的好友消息的主要功能是别人申请添加好友的消息界面:
部分xml代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white">
<ImageButton
android:id="@+id/back_btn"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:background="@drawable/toolbar_back_bg"
android:onClick="friendMsgBack"
android:src="?attr/homeAsUpIndicator" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="验证信息"
android:textColor="@color/black"
android:textSize="19sp" />
<Button
android:id="@+id/messageNextButton"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/toolbar_back_bg"
android:gravity="center"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:text="下一步"
android:textColor="@color/login_button_default_blue"
android:textSize="17sp" />
</RelativeLayout>
其中,核心控件ListView以及每个item的对应视图
ListView | Item |
---|---|
相对应的Activity相关的核心实现部分MyMessageFriendActivity核心代码块为;
public void onSuccess(Response response) {
if (response.isSuccessful()) {
try {
String res = response.body().string();
JSONObject request = new JSONObject(res);
JSONArray jsonArray = request.getJSONArray("request");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String nickname = jsonObject.optString("nickname");
String phone = jsonObject.optString("phone");
String message = jsonObject.optString("message");
String requestUid = jsonObject.optString("requestUid");
String agree = jsonObject.optString("agree");
int iconId = jsonObject.optInt("photo");
list.add(new TempFriendBean(nickname, phone, message, requestUid, agree, iconId));
}
MyMessageFriendActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
friendMessageAdapter = new FriendMessageAdapter(MyMessageFriendActivity.this, list);
listView.setAdapter(friendMessageAdapter);
}
});
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
其主要功能是从服务器获取数据后的回调函数,根据请求的成功或者失败做出具体的响应。
2、Flag详情界面
设置每条Flag的点击事件,点击后进入flag详情界面,可以查看flag的详情信息,并且有些根据情景设定的功能按钮。
部分xml对的代码设计:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white">
<ImageButton
android:id="@+id/back_btn"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:background="@drawable/toolbar_back_bg"
android:onClick="superviseDetailBack"
android:src="?attr/homeAsUpIndicator" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="FLAG详情"
android:textColor="@color/black"
android:textSize="19sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="查看评论"
android:gravity="center"
android:padding="5dp"
android:textColor="@color/login_button_default_blue"
android:onClick="lookJudge"
android:background="@drawable/toolbar_back_bg"
android:textSize="15sp" />
</RelativeLayout>
显示视图如下:
根据具体的情景设定,设置点击事件等,其中SuperViseDetailActivity的Actiity是在创建后,会获取来自父界面的传入信息,判断来自哪一个界面,从而决定要显示什么按钮,进行什么交互。
代码编写完后,我们进行了代码互测,针对不同的输入信息,设计了多组测试数据,然后在真机上对每一组数据进行实际测试,检查后台返回数据是否,直到这两个功能的测试都运行无误。
后台
这一阶段后台部分主要是flag相关共功能的开发,与其他的相比,flag的组成元素更多,逻辑复杂,考虑到的对象比较多,所以一开始对于设计我们是比较谨慎的,经过初期的思考决定,暂时先把model层的逻辑写清楚,在写model层的时候一定要注意对dao层的考虑,比较dao层实现的是业务功能,只要先考虑清楚了有哪些功能,我们下一步才能更好的工作。
后台部分主要实现了flagbrief和flagdetail的主体架构:
Flagbrief | Flagdetail |
---|---|
这是flagbrief的主要架构,他的主要目的实在形成列表的时候,提交的数据,这种数据用来处理比较方便。 | 这是flagdetail的主要架构,看上去比较简单,实际上拥有着比较复杂的实现方式,包含了多种数据,成员等,也为dao层的实现打下了基础。 |
总结
这一阶段的过程还算顺利,小组成员深刻体会到了前期需求讨论的充分以及花费了大量的时间进行计划的评估和修改,好让我们的开发过程思路清晰明了,遇到的问题也会快速解决。