团队作业八——第二次团队冲刺(Beta版本)第6天
团队作业八——第二次团队冲刺(Beta版本)第6天
一、每个人的工作
(1) 昨天已完成的工作
简单模式逻辑代码涉及与相关功能的具体实现
(2) 今天计划完成的工作
修改完善注册登录内容界面,编辑错题文件写入。
(3) 工作中遇到的困难
今天花了较多时间在完善登录注册界面上,这让我们比较担心,如果每天都花很多时间在解决之前的问题,当天的任务又做不好,会不会赶不上进度。如果每天都不能正常完美的完成每天任务,那冲刺最后一天结束的时候,又哪里再有一个明天给我们完善代码。且今天还遇到了写入SD存储卡文件权限问题。
(4) 每个人的贡献比

二、燃尽图

三、代码
登录注册界面代码:
public class RegisterActivity extends Activity implements HttpResponeCallBack {
private EditText loginNick;//用户昵称
private EditText email;//注册邮箱
private EditText password;//注册密码
private Button registBtn;//注册
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initView();
}
private void initView() {
loginNick = (EditText) findViewById(R.id.regist_nick);
email = (EditText) findViewById(R.id.regist_account);
password = (EditText) findViewById(R.id.regist_password);
registBtn = (Button) findViewById(R.id.regist_btn);
registBtn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//获得用户输入的信息
String nick = loginNick.getText().toString();
String emailStr = email.getText().toString();
String passwordStr = password.getText().toString();
if (!TextUtils.isEmpty(nick) &&
!TextUtils.isEmpty(emailStr)
&& !TextUtils.isEmpty(passwordStr)) {
if (Utils.isEmail(emailStr)) {//验证邮箱格式是否符合
RequestApiData.getInstance().getRegistData(nick, emailStr, passwordStr,
AnalyticalRegistInfo.class, RegisterActivity.this);
} else {
Toast.makeText(RegisterActivity.this, "输入邮箱有误", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(RegisterActivity.this, "输入信息未完全", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onResponeStart(String apiName) {
// TODO Auto-generated method stub
Toast.makeText(RegisterActivity.this, "正在请求数据...", Toast.LENGTH_SHORT).show();
}
@Override
public void onLoading(String apiName, long count, long current) {
Toast.makeText(RegisterActivity.this, "Loading...", Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess(String apiName, Object object) {
// TODO Auto-generated method stub
//注册接口
if (UrlConstance.KEY_REGIST_INFO.equals(apiName)) {
if (object != null && object instanceof AnalyticalRegistInfo) {
AnalyticalRegistInfo info = (AnalyticalRegistInfo) object;
String successCode = info.getRet();
//请求成功
if (successCode.equals(Constant.KEY_SUCCESS)) {
UserBaseInfo baseUser = new UserBaseInfo();
baseUser.setEmail(info.getEmail());
baseUser.setNickname(info.getNickname());
baseUser.setUserhead(info.getUserhead());
baseUser.setUserid(String.valueOf(info.getUserid()));
ItApplication.getInstance().setBaseUser(baseUser);
UserPreference.save(KeyConstance.IS_USER_ID, String.valueOf(info.getUserid()));
UserPreference.save(KeyConstance.IS_USER_ACCOUNT, info.getEmail());
UserPreference.save(KeyConstance.IS_USER_PASSWORD, password.getText().toString());
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
RegisterActivity.this.startActivity(intent);
Toast.makeText(RegisterActivity.this, "注册成功...", Toast.LENGTH_SHORT).show();
RegisterActivity.this.finish();
} else {
Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
}
}
}
}
@Override
public void onFailure(String apiName, Throwable t, int errorNo, String strMsg) {
Toast.makeText(RegisterActivity.this, "Failure", Toast.LENGTH_SHORT).show();
}
}
文件写入部分代码:(解决文件写入问题)
解决方法:在AndroidManifest.xml加入
<!--在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 从SDCard读取数据权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
https://git.coding.net/lizhiqiang0x01/Beta-APPsizeyunsuan.git
四、模块部分截图
文件写入部分:

登录注册界面:


五、项目进展
今日计划完成的内容已经基本完成,解决了文件权限写入问题。 目前为止,我们完成了各个界面的转换,简单复杂模式的编写,登录注册模块完成,基本逻辑代码的编辑。
尚未完善的内容有:错题本模块,页面美观问题,之前遗留下的草稿本不兼容问题,写入SD存储卡文件权限问题,还有其他尚未发现的漏洞。我们会努力在剩下时间内填补漏洞,完善项目内容。
六、小结
项目方面:大体上能跟上最初计划,但总是计划赶不上变化,总是出现一些问题让我们措不及防。比如今天的登录界面,本来是之前计划应该完成的内容,因为之前出现的问题,导致今天才彻底完善登录界面功能,幸好今天都还顺利,但也都有在填补历史遗留问题,不知道真正的大项目是不是也会这样,还是大家都会严格按进度,一步不落?
团队方面:不得不说,大家在一块时间久了都比之前放得开得多,每天站立会议,在讨论完项目工作后,大家也都会开开玩笑,互相催催进度。这让整个团队保持在一个良好的团队氛围中,积极正面。也不至于大家太过紧张严肃,张弛有度的工作氛围对工作效率很有帮助。
七、站立会议图片

团队作业八——第二次团队冲刺(Beta版本)第6天的更多相关文章
- 团队作业7——第二次项目冲刺-Beta版本项目计划
上一个阶段的总结: 在Alpha阶段,我们小组已近完成了大部分的功能要求,小组的每一个成员都发挥了自己的用处.经过了这么久的磨合,小组的成员之间越来越默契,相信在接下来的合作中,我们的开发速度会越来越 ...
- 团队作业八——第二次团队冲刺(Beta版本)第7天&项目汇总
项目汇总 第一天:http://www.cnblogs.com/newteam6/p/6879383.html 第二天:http://www.cnblogs.com/newteam6/p/688078 ...
- 团队作业八——第二次团队冲刺(Beta版本)第5天
团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 完成界面跳转界面. (2) 今天计划完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (3) 工作中 ...
- 团队作业八——第二次团队冲刺(Beta版本)第4天
团队作业八--第二次团队冲刺(Beta版本)第4天 一.每个人的工作 (1) 昨天已完成的工作 做一下用户注册的功能和登录功能. (2) 今天计划完成的工作 完成界面跳转 (3) 工作中遇到的困难 界 ...
- 团队作业八—第二次团队冲刺(Beta版本) 第 2 天
一.每个人的工作 (1) 昨天已完成的工作 昨天的工作主要是一些界面的设计,我们顺利完成了复杂模式题目数目界面.复杂模式做题界面.结果统计界面的具体代码编写,和一些细节的完善.还有日常冲刺博客的编辑. ...
- 团队作业8 ----第二次项目冲刺(Beta阶段)博客汇总
一.冲刺计划安排 团队作业8--Beta版本冲刺计划及安排 二.七天冲刺汇总 [Beta]第一次Daily Scrum Meeting [Beta]第二次Daily Scrum Meeting [Be ...
- 团队作业八—第二次团队冲刺(Beta版本) 第 1 天
一.每个人的工作 (1) 昨天已完成的工作 由于是才刚开始冲刺,所以没有昨天的工作 (2) 今天计划完成的工作: 对界面的优化和一些细节的完善 (3) 工作中遇到的困难: 工作中出现了意见不一的情况 ...
- 团队作业八——第二次团队冲刺(Beta版本)第3天
一.每个人的工作 (1) 昨天已完成的工作 对界面进行完善,并增加简单界面(包含简单界面内含的界面),简单模式与复杂模式的选择界面. (2) 今天计划完成的工作 做一下用户注册的功能和登录功能. (3 ...
- 团队作业7——第二次项目冲刺(Beta版本)
团队作业7——第二次项目冲刺-Beta版本项目计划 团队作业7——第二次项目冲刺(Beta版本)-第一篇 团队作业7——第二次项目冲刺(Beta版本)-第二篇 团队作业7——第二次项目冲刺(Beta版 ...
随机推荐
- com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'goodsName' cannot be null
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'goodsName' cannot be n ...
- [填坑]树上差分 例题:[JLOI2014]松鼠的新家(LCA)
今天算是把LCA这个坑填上了一点点,又复习(其实是预习)了一下树上差分.其实普通的差分我还是会的,树上的嘛,也是懂原理的就是没怎么打过. 我们先来把树上差分能做到的看一下: 1.找所有路径公共覆盖的边 ...
- [Noi2008]假面舞会
考试的时候果断放弃,cout<<"-1 -1"骗10分hhh... 这也是图上问题.注意题目意思: ①如果有多个点指向同一个点,那么他们属于同一类别. ②一个点看到的所 ...
- WPF中使用Data Annotations验证Model
.NET Framework中System.ComponentModel.DataAnnotations提供了很多属性来验证对象的属性.可以在C:\Program Files (x86)\Refere ...
- python学习===将py文件从打包成exe程序
1.进入要打包的py程序所在文件夹,例如hello.py程序要打包. 2.在同一目录下新建文件setup.py,内容如下: from distutils.core import setup impor ...
- C++ 开发OCX 的方法和注意事项
C++ 开发OCX 的方法和注意事项 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精 ...
- shell编程之文件包含
shell脚本也可以包含文件 格式: . filename 或者source filename 举例: a.sh #!/bin/sh calla() { echo "a.sh is call ...
- 【物联网云端对接-2】通过MQTT协议与阿里云物联网套件进行云端通信
在<程序员>杂志2017.4刊上,曾写过一篇<微软百度阿里三大物联网平台探析>,上面曾介绍了阿里云物联网套件的一些内容,在写该篇文章的时候,凌霄物联网网关还无法对接到此平台( ...
- Ext.NET加入自定义验证JS函数
ExtJS验证很方便,在使用FormPanel的时候,我们可以很方便的进行验证.比如设置必填项.正则.字段类型等等.比如如下所示: 上面的验证是这么写的: 1 2 3 <Listeners> ...
- Struts2.5的的环境搭建及跑通流程
Struts2.5 struts是开源框架.使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间.如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,st ...