scrum项目冲刺_day11 第一阶段总结
“智能垃圾分类APP”第一阶段总结








总任务:
一.appUI页面(已完成)
二.首页功能:
1.图像识别功能(已完成)
2.语音识别功能(已完成)
3.垃圾搜索功能(基本完成)
4.相关新闻爬取
三.我的功能
1.登陆注册(已完成)
2.短信服务(已完成)
3.积分奖励机制
四.路线功能
1.路线规划(已完成)
2.地图导航(已完成)
五.社区功能
1.发布功能(已完成)
2.评论功能
六.服务器部署(已完成)
源代码:
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.StrictMode;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast; import com.bumptech.glide.Glide;
import com.example.garbagesorting.AddActivity;
import com.example.garbagesorting.R;
import com.example.garbagesorting.adapter.findAdapter;
import com.example.garbagesorting.dao.FindDao;
import com.example.garbagesorting.model.find;
import com.example.garbagesorting.utils.BitmapUtils;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit; public class FindFragment extends Fragment {
private RecyclerView rec_find;
private View root;
private ArrayList<find> list=new ArrayList<>();
private findAdapter adapter;
private FindDao findDao=new FindDao();
public static final int ADD = 100;
SharedPreferences sp=null;
private LocalBroadcastManager broadcastManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
root=inflater.inflate(R.layout.fragment_find, container, false); initUI();
initData();
new UpdateDateThd(updateDateHandler).start();
return root;
}
private void initUI(){
rec_find=root.findViewById(R.id.rec_find);
sp=getContext().getSharedPreferences("User", getContext().MODE_PRIVATE);
}
private void initData(){
FloatingActionButton fab = root.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
if(sp.getString("phone",null)!=null){
intent.setClass(getActivity(), AddActivity.class);
getActivity().startActivityForResult(intent, ADD);
}
else {
Toast.makeText(getContext(),"请先登录",Toast.LENGTH_SHORT).show();
}
}
});
}
@SuppressLint("HandlerLeak")
private Handler updateDateHandler = new Handler() { @Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//获取日期,显示
Bundle bundle = msg.getData();
ArrayList date = (ArrayList) bundle.getSerializable("value");
//dateView.setText(date);
rec_find.setLayoutManager (new GridLayoutManager(getContext(), 2, GridLayoutManager.VERTICAL, false));
adapter=new findAdapter(getContext(),date);
rec_find.setAdapter(adapter);
}
}; //发送消息给UI线程的子线程.
class UpdateDateThd extends Thread{
private Handler handler;
private boolean bool=true; public UpdateDateThd(Handler handler) {
this.handler = handler;
} @Override
public void run () { while (bool) {
// try {
//每秒向主线程发送一次消息
// TimeUnit.MILLISECONDS.sleep(10000);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String date = sdf.format(new Date()); try {
list=findDao.queryAll();
sendMessage(list);
TimeUnit.MILLISECONDS.sleep(10000);
bool=false;
} catch (InterruptedException e) {
e.printStackTrace();
}
bool=false;
}
} private void sendMessage(ArrayList msg){
Bundle data = new Bundle();
data.putSerializable("value",list);
Message message = new Message();
message.setData(data); this.handler.sendMessage(message);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//拍照后返回
if (resultCode==8) {
//显示图片
System.out.println("秋明");
find fd=(find) data.getSerializableExtra("find");
System.out.println(fd.getPhone());
rec_find.setLayoutManager (new GridLayoutManager(getContext(), 2, GridLayoutManager.VERTICAL, false));
adapter.notifyItemInserted(0);
list.add(0,fd);
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
rec_find.scrollToPosition(0);
return;
} }
}
团队成员:

燃尽图

scrum项目冲刺_day11 第一阶段总结的更多相关文章
- 【1414软工助教】团队作业8——第二次项目冲刺(Beta阶段) 得分榜
题目 团队作业8--第二次项目冲刺(Beta阶段) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析&a ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.19 first day
团队作业8--第二次项目冲刺(Beta阶段)--5.19 Day one: 会议照片 项目进展 由于今天是Beta版本项目冲刺的第一天,所以没有昨天已完成任务.以下是今日具体的任务安排. 队员 今日计 ...
- T-MAX组--项目冲刺(第一天)
THE FIRST DAY 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--项目冲刺(第一天) 团队名称 T-MA ...
- 【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)
写在前面的话 此次团队作业8可以拆分成两部分:1.beta阶段冲刺计划安排,2.7天敏捷冲刺."我们很低调"没有使用leangoo,经过与张老师的商议,张老师同意他们不使用lean ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.21 second day
团队作业8--第二次项目冲刺(Beta阶段)--5.21 second day Day two: 会议照片 项目进展 今天是beta冲刺的第二天,组长还在准备考试当中,我们继续做前端改进和后端安排,今 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.23 third day
团队作业8--第二次项目冲刺(Beta阶段)--5.23 third day Day three: 会议照片 项目进展 今天是beta冲刺的第三天,组长回到了队伍当中,正式开始改进alpha中存在的功 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.24 forth day
团队作业8--第二次项目冲刺(Beta阶段)--5.24 forth day Day four: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day
团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.26 sixth day
团队作业8--第二次项目冲刺(Beta阶段)--5.26 sixth day Day six: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完成 ...
随机推荐
- SpringBoot开发九-生成验证码
需求介绍-生成验证码 先生成随机字符串然后利用Kaptcha API生成验证图片 代码实现 先在pom.xml引入 <dependency> <groupId>com.gith ...
- E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to l ...
- 在java程序中使用protobuf
目录 简介 为什么使用protobuf 定义.proto文件 编译协议文件 详解生成的文件 Builders 和 Messages 序列化和反序列化 协议扩展 总结 简介 Protocol Buffe ...
- RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解
一.RabbitMQ简介 是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang(高并发语言)语言来编写的,并且RabbitMQ是基于AMQ ...
- 公司新来了一个质量工程师,说团队要保证 0 error,0 warning
摘要:静态代码检查又称为静态程序分析,是指在不运行计算机程序的条件下,进行程序分析的方法. 本文分享自华为云社区<公司新来了一个质量工程师,说团队要保证 0 error,0 warning> ...
- com.github.ulisesbocchio:jasypt-spring-boot-starter:2.0.0引用了sping cloud Finchley.M8版本,一直报错说不能从阿里云下载
解决方法: 1.找到idea或者eclipase中maven插件引向得settings.xml文件 2.修改文件中<mirror/>标签(配置仓库镜像用得)中<mirrorOf/&g ...
- asp.net core 搭建WebAPI微服务-----cosnul服务
参考网址:https://blog.csdn.net/weixin_42084199/article/details/108643555 在此之前需要准备的是: vs2019,以往版本不支持dotne ...
- 踩坑记录--接口调用,传参DataTable报错
问题描述 服务端提供接口,接口参数包含DataTable类型,客户端调用显示请求报错,Postman调用显示Could not get response 解决 原因 接口实现基于wcf,而wcf参数类 ...
- WPF设计自定义控件
在实际工作中,WPF提供的控件并不能完全满足不同的设计需求.这时,需要我们设计自定义控件. 这里LZ总结一些自己的思路,特性如下: Coupling UITemplate Behaviour Func ...
- MySQL授权认证
• MySQL-权限系统介绍 • 权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除等数据库操作的权限 • 不能明确的指定拒绝某个用户的连接 • 权限控制(授权与回收)的执行语句包括 ...