Android第四次作业

1.团队成员

韩丽萍  1600802042  计162班  博客链接:https://www.cnblogs.com/hlpbk/

祁海燕  1600802054  计162班  博客链接:https://www.cnblogs.com/qhybk/

2.apk链接:

https://git.dev.tencent.com/hanlp/mydiaryapp.git

3.项目完整代码链接:

https://git.dev.tencent.com/hanlp/mydiary.git

4.介绍团队项目

4.1 团队项目的总体效果截图

视频连接:http://v.youku.com/v_show/id_XMzk5Njg1NDQ4NA==.html?spm=a2h3j.8428770.3416059.1

 

4.2 实现的功能及其效果的描述

本次作业的实现,用到的知识点有UI,listview,Intent,SQLite数据库,实现了一个简单的日记APP,能够实现的功能包括

(1)新建日记,新建日记时当天的日期,星期以及天气状况均不能为空,如果其中一个为空,则会提示该项不能为空。

(2)编辑日记,可以编辑已有的日记内容,修改完成后会提示插入或修改成功。

(3)删除日记,可以删除任意一天的日记,删除后会提示删除成功。

(4)保存日记,日记信息通过安卓自带数据库进行存储。

5.项目中的关键代码

 

   //初始化数据库
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DaoDiary.instance().init(getApplicationContext());
        mButton = (Button) findViewById(R.id.add);
        mListView = (ListView) findViewById(R.id.listview);
        list = DaoDiary.instance().selectAll();
        adapter = new MyAdapter();
        mListView.setAdapter(adapter);
        mListView.setOnItemClickListener(this);
        mButton.setOnClickListener(this);
    }
   //新建日记
public void onClick(View v) {
     
        Intent intent = new Intent();
        intent.setClass(this, NewActivity.class);
        if (list == null) {
            intent.putExtra("id", 1);
        } else {
            intent.putExtra("id", list.size()+2);
        }
        intent.putExtra("isshow", true);
        startActivity(intent);
    }
listview点击事件
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent();
        intent.setClass(this, NewActivity.class);
        intent.putExtra("id", list.get(position).getId());
        intent.putExtra("date", list.get(position).getDate());
        intent.putExtra("week", list.get(position).getWeek());
        intent.putExtra("weather", list.get(position).getWeather());
        intent.putExtra("content", list.get(position).getContent());
        intent.putExtra("isshow", false);
        startActivity(intent);
    }
listview的adapter
class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            if (list.size() != 0) {
                return list.size();
            }
            return 0;
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            ViewHolder holoder = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.diary_item, null);
                holoder = new ViewHolder();
                holoder.date = (TextView) convertView.findViewById(R.id.item_date);
                holoder.delete = (TextView) convertView.findViewById(R.id.item_delete);
                holoder.edit = (TextView) convertView.findViewById(R.id.item_edit);
                convertView.setTag(holoder);
            } else {
                holoder = (ViewHolder) convertView.getTag();
            }
            holoder.date.setText(list.get(position).getDate());
            holoder.edit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //编辑日记
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, NewActivity.class);
                    intent.putExtra("id", list.get(position).getId());
                    intent.putExtra("date", list.get(position).getDate());
                    intent.putExtra("week", list.get(position).getWeek());
                    intent.putExtra("weather", list.get(position).getWeather());
                    intent.putExtra("content", list.get(position).getContent());
                    intent.putExtra("isshow", true);
                    startActivity(intent);
                }
            });
            holoder.delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    //删除日记
                    if (DaoDiary.instance().delet(list.get(position).getId())) {
                        list.clear();
                        if (DaoDiary.instance().selectAll()!=null) {
                            list.addAll(DaoDiary.instance().selectAll());
                        }
                        //刷新listview
                        notifyDataSetChanged();
                        Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            return convertView;
        }

6.其他团队项目的apk,团队讨论,选出你心目中的前5名,并简单说明一下

(1)https://www.cnblogs.com/JusperLee/p/10192769.html

他们的APP实现了制定计划并按时提醒的功能。

优点:实现的功能特别全面,觉得是一个成熟的APP了,实现的功能包括添加背单词计划;还能实现打卡,通过改卡片生成打卡内容;添加提醒事项的功能可以按时提醒学生需要做的事情;主题的更改功能能够切换白天与黑夜两个主题;这个APP比较简约,也很适合学生党的使用。

缺点:有时候会闪退。

(2)https://www.cnblogs.com/Suejun/p/10192755.html

他们的APP能够在课堂实现点名功能。

优点:实现的功能有:上课顺序点名功能上课 ;随机点名功能;查询信息功能;修改学生信息功能;显示公告

能够从数据库中找出学生信息进行顺序、随机点名,并可以修改数据库中的学生信息。

缺点:在实现随机点名功能时会出现打开学生数据表时一直会报错的情况;可以添加空记录的异常错误;删除最后一个数据时不可避免的异常;无法添加数据库

运行程序时,出现闪退情况;R包丢失;运行项目时出现错误:Information:Gradle tasks,

(3)https://www.cnblogs.com/mxl123/

这个快递APP可以帮助同学们实时了解自己的快递信息,还能发布代取信息。

优点:她们的APP主页上放了4种快递实现的功能:用户根据自己的快递的类型点击相关的快递来了解相关的快递信息,比如想看一下最近的校园招聘情况可以点圆通快递里面的“校园招聘” 进行了解,看看招聘时需要哪些条件和招聘流程等,用户也可以了解圆通的发展史,点击“了解圆通”就可以,了解申通等快递也是一样,在相对应的快递主页进行了解就可以,快递的主页联系方式,可以让别人帮忙取一下快递,安全性不要担心,因为在刚开始登录的时候,学号是唯一的,数据库里有登录的信息,如果遇到快递被别人拿走等,可以寻求帮助,主页中有“帮助”里面有联系人的信息。如果你的快递已到达你的身边,可是你没有时间去取,你可以发布动态,让别人帮忙取一下,你也可以点击“转入淘宝”在淘宝上挑选你所需要的物品。在我的主页,你也可以查看好友列表,当好友比较多时,列表可以进行上下拉动,这样比较方便浏览。

缺点:用户发布动态时其第一个动态会被覆盖。

(4)https://www.cnblogs.com/hanlulu/p/10186629.html

她们实现了一个简约的音乐播放器。

优点:上一曲、下一曲、播放、暂停;进步条;清除最近听得列表歌曲;播放列表;显示歌曲信息

缺点:不能实现网络搜索

(5)https://www.cnblogs.com/2575590018dqy/p/10193084.html

他们实现的也是音乐播放器。

优点:进度条控制音乐播放进度;播放,暂停,上一曲,下一曲,音量键控制音量大小;列表播放音乐;自动播放下一曲;还能实现随机播放,顺序播放,单曲循环

功能比较完善,界面简约而美观。

缺点:只能实现播放音乐播放器里的歌曲,不能实现自动搜索本地音乐的搜索。

7.团队成员做项目中遇到的问题,以及解决方法

 7.1 祁海燕同学遇到的问题:

(1)日记信息的保存问题。解决办法:使用Android自带的SQLite数据库进行保存。

(2)日记的删除问题。解决办法 :

 holoder.delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    //删除日记
                    if (DaoDiary.instance().delet(list.get(position).getId())) {
                        list.clear();
                        if (DaoDiary.instance().selectAll()!=null) {
                            list.addAll(DaoDiary.instance().selectAll());
                        }
                        //刷新listview
                        notifyDataSetChanged();
                        Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            return convertView;
        }

7.2 韩丽萍同学遇到的问题:

(1)日记的添加问题。解决办法:获取添加日记界面中日记的日期、标题以及具体的内容,然后将这些信息添加到数据库中

(2)日记的修改问题。解决办法:

      public void onClick(View v) {
                    //编辑日记
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, NewActivity.class);
                    intent.putExtra("id", list.get(position).getId());
                    intent.putExtra("date", list.get(position).getDate());
                    intent.putExtra("week", list.get(position).getWeek());
                    intent.putExtra("weather", list.get(position).getWeather());
                    intent.putExtra("content", list.get(position).getContent());
                    intent.putExtra("isshow", true);
                    startActivity(intent);
                }

 

8.说明团队成员在本次项目中的分工、占了总工作的多少

姓名                        分工 工作比例 得分
韩丽萍 UI,数据库,功能实现 50% 10
祁海燕 UI,数据库,功能实现 50% 10
posted @ 2018-12-30 17:42  hanlp  阅读(319)  评论(0编辑  收藏  举报