一、概述:
开发环境:Android Studio4.1
虚拟机:Android11(Google APIs)
数据库:基于Sqlite的Room框架
功能:添加新计划,更新已有计划,删除一个计划。
样式:

二、项目结构:
1.布局文件

布局思路介绍:
1).主活动中使用recyclerview布局,添加一个add按钮。
2).点击“添加”按钮弹出一个dialog。
3).点击dialog确定按钮将recyclerview更新显示。

2.java代码

逻辑思路介绍:
1).数据库Room使用的MVVM模型,先创建Item类,定义每一个条目的属性与方法。(仅作参考)

package cn.edu.swu.todolist;import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;@Entity
public class Item {@PrimaryKey(autoGenerate = true)private int id;@ColumnInfo(name = "title")private String title;@ColumnInfo(name = "content")private String content;@ColumnInfo(name = "date")private String date;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}
}

2).Dao层简单设计用户数据库操作

package cn.edu.swu.todolist;import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;import java.util.List;@Dao
public interface ItemDao {@Query("SELECT * FROM Item")List<Item> getAll();@Updatevoid update(Item item);@Insertvoid insert(Item item);@Deletevoid delete(Item item);}

3).再创建一个数据库抽象类

package cn.edu.swu.todolist;import androidx.room.Database;
import androidx.room.RoomDatabase;
@Database(entities = {Item.class}, version = 1, exportSchema = false)
public abstract class ItemDB extends RoomDatabase {public abstract ItemDao itemDao();}

4).MainActivity中添加recyclerview逻辑,再绑定添加按钮实现dialog功能。
recyclerview基本使用:recyclerview
dialog基本使用:dialog

三、注意事项
1.执行添加条目时,直接将新增对象添加进adapter的数据源(List),再插入数据库。
2.recyclerview的添加一个条目操作:详情
3.更新和删除条目时直接更改adapter数据源即可,注意确定下标。
4.条目内的按钮操作是使用的回调事件:详情

四、源代码
(代码会提交到github,静待更新…)

Android小实例----TodoList相关推荐

  1. android-sqlite小实例

    学习android-sqlite数据库的一个小实例,只需要有数据库文档,就可以获取里面的数据,而不需要本地链接.此实例,是将数据库文档mydb.db里面某个表里面的信息显示出来,仅供参考,希望共同进步 ...

  2. android 字符串数组去重,GitHub - deng-ming-hao/ec-do: 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等。...

    ec-do 自己封装的常用操作实例 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等. 使用方法 引入ec-do.js //去除空格 ecDo.trim(' ...

  3. Android小知识10则(下)

    Android小知识10则(上) github传送门 注: 在目录中点击可以跳转到具体代码页 目录 Chronometer和CountDownTimer计时器 Chronometer的使用 Count ...

  4. 线性嵌套实例(三个小实例)

    这个是对初学者实用的,全部都是利用线性布局实现的相对比较复杂 先上效果图 ![在这里插入图片描述](https://img-blog.csdn.net/20181016082733551?waterm ...

  5. Android 1000实例代码集结(一 )

    关========================================================================== Androidbikeroute自行车导航源码. ...

  6. Android小项目————聊天室(UI篇)

    Android小项目----聊天室(UI篇) 一.前言 这是所做的第二个android项目,主要目的对暑假所学的java和android知识点进行复习巩固和实践,由于知识所限,目前这个聊天室并不是很完 ...

  7. Android常用实例——截取APP当前界面(可带图片、文字水印)

    Android常用实例--截取APP当前界面(可带图片.文字水印) 标签: android界面截图保存图片 2016-08-16 10:52 1262人阅读 评论(2) 收藏 举报  分类: Andr ...

  8. 一个小实例——借书Demo

    一个小实例--借书Demo Step 1 布局文件 Step 2 初始化控件 Step 3 初始化数据 第一步 创建数据model 第二步 初始化数据 Step 4 添加监听器 实现基本功能 Step ...

  9. Android小项目之--前台界面与用户交互的对接 进度条与拖动条(附源码)

    都知道水果公司(苹果)是己尊重用户体验著称的公司,其设计的产品人性化十足,不得不令后来者赞叹,竞相模仿.iphone的成功就是其典型的案例,做为其移动系统的死对头 Google 想要在市场上分得一杯羹 ...

最新文章

  1. UVa 10820 (打表、欧拉函数) Send a Table
  2. 将DataTable 数据插入 SQL SERVER 数据库
  3. 简单的机器学习程序_人体动作识别小程序【机器学习 人工智能】
  4. Oracle redo
  5. linux基础配置脚本,Linux中selinux基础配置教程详解
  6. python selenium翻页_Selenium翻页的实现方法实例
  7. 吴裕雄--天生自然 高等数学学习:微分方程的幂级数解法
  8. 实时Web与WebSocket实践
  9. Java 初学记录之一 快速输入
  10. git学习笔记(三)
  11. Pandas常用函数diff和shift函数学习使用
  12. 使用Bartend提取K3领料数据以实现发料包装标识批量自动打印
  13. 最简洁详细内网穿透教程实现远程桌面连接
  14. java和android!怒斩获了30家互联网公司offer,分享PDF高清版
  15. 在github搭建自己写的网页
  16. 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?
  17. RFID卡片的扇区与块地址的关系
  18. 弱电布线工程实战攻略
  19. python令人迷惑的duplicated和drop_duplicates()
  20. 【深度强化学习】6. Q-Learning技巧及其改进方案

热门文章

  1. 一天4个个人记录,哇嘎嘎
  2. 福昕阅读器 5.4.4.1128 Firefox Plugin npFoxitReaderPlugin.dll Stack Buffer Overflow
  3. 不抱怨21天实践手册~2017-12-8
  4. 一枚亲斤手对中大SYSUMSClub的puzzle的解题记录(writeup)(2021-10)(G2T1me)
  5. 剧荒不慌 | 手把手教你爬取+DIY豆瓣电影新榜单
  6. feign 使用示例:动态url、动态参数、下载文件、请求体
  7. ImageNet2012 数据集下载
  8. 5G发牌三周年 云网融合加速 如何解决企业网络之忧?
  9. 工业计算机与商用计算机的区别
  10. linux 内核 time,Linux Time