“智能垃圾分类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 第一阶段总结的更多相关文章

  1. 【1414软工助教】团队作业8——第二次项目冲刺(Beta阶段) 得分榜

    题目 团队作业8--第二次项目冲刺(Beta阶段) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析&a ...

  2. 团队作业8——第二次项目冲刺(Beta阶段)--5.19 first day

    团队作业8--第二次项目冲刺(Beta阶段)--5.19 Day one: 会议照片 项目进展 由于今天是Beta版本项目冲刺的第一天,所以没有昨天已完成任务.以下是今日具体的任务安排. 队员 今日计 ...

  3. T-MAX组--项目冲刺(第一天)

    THE FIRST DAY 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--项目冲刺(第一天) 团队名称 T-MA ...

  4. 【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)

    写在前面的话 此次团队作业8可以拆分成两部分:1.beta阶段冲刺计划安排,2.7天敏捷冲刺."我们很低调"没有使用leangoo,经过与张老师的商议,张老师同意他们不使用lean ...

  5. 团队作业8——第二次项目冲刺(Beta阶段)--5.21 second day

    团队作业8--第二次项目冲刺(Beta阶段)--5.21 second day Day two: 会议照片 项目进展 今天是beta冲刺的第二天,组长还在准备考试当中,我们继续做前端改进和后端安排,今 ...

  6. 团队作业8——第二次项目冲刺(Beta阶段)--5.23 third day

    团队作业8--第二次项目冲刺(Beta阶段)--5.23 third day Day three: 会议照片 项目进展 今天是beta冲刺的第三天,组长回到了队伍当中,正式开始改进alpha中存在的功 ...

  7. 团队作业8——第二次项目冲刺(Beta阶段)--5.24 forth day

    团队作业8--第二次项目冲刺(Beta阶段)--5.24 forth day Day four: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

  8. 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day

    团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

  9. 团队作业8——第二次项目冲刺(Beta阶段)--5.26 sixth day

    团队作业8--第二次项目冲刺(Beta阶段)--5.26 sixth day Day six: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完成 ...

随机推荐

  1. Spring Security项目的搭建以及Spring Security的BCrypt加密

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  2. Go语言笔记[实现一个Web框架实战]——EzWeb框架(一)

    Go语言笔记[实现一个Web框架实战]--EzWeb框架(一) 一.Golang中的net/http标准库如何处理一个请求 func main() { http.HandleFunc("/& ...

  3. 如何删除windows10右键新建中不需要的选项

    参考博客https://blog.csdn.net/Kinglen_R/article/details/102983259 首先打开注册表程序,可以点击开始按钮后直接输入regedit点击进入 (或者 ...

  4. ACM学习笔记:二叉堆

    title : 堆 date : 2021-8-3 tags : ACM,数据结构 什么是堆 堆是一棵具有特定性质的二叉树,堆的基本要求是堆中所有结点的值必须大于等于(或小于等于)其孩子结点的值,这也 ...

  5. 一篇文章搞懂密码学基础及SSL/TLS协议

    SSL协议是现代网络通信中重要的一环,它提供了传输层上的数据安全.为了方便大家的理解,本文将先从加密学的基础知识入手,然后展开对SSL协议原理.流程以及一些重要的特性的详解,最后会扩展介绍一下国密SS ...

  6. 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据

    大家好,我是大明哥,一个专注于[死磕 Java]系列创作的男人 个人网站:https://www.cmsblogs.com/.专注于 Java 优质系列文章分享,提供一站式 Java 学习资料 某天我 ...

  7. Windows Go 开发环境下载、安装并配置

    前言 对于我们Windows用户而言,Go提供两种环境安装方式(源码安装除外): 1.MSI安装(MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的 ...

  8. SQL 练习41

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水.如果不存在第二高的薪水,那么查询应返回 ...

  9. 【springboot】知识点总结

    [springboot 基础编] 01.SpringBoot>01 - 第一个应用–HelloWorld 02.SpringBoot>02 - 整合 MyBatis 03.SpringBo ...

  10. Windows 10 - View SIM Card Number

     If your device isn't running Windows 10, refer to the Windows 8 instructions. From the Windows desk ...