No description
Find a file
xiaoman1221 17b753abe4 Add README and project documentation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 02:13:48 +08:00
.idea Add README and project documentation 2026-06-30 02:13:48 +08:00
app Add README and project documentation 2026-06-30 02:13:48 +08:00
gradle Add README and project documentation 2026-06-30 02:13:48 +08:00
.gitignore Add README and project documentation 2026-06-30 02:13:48 +08:00
build.gradle Add README and project documentation 2026-06-30 02:13:48 +08:00
gradle.properties Add README and project documentation 2026-06-30 02:13:48 +08:00
gradlew Add README and project documentation 2026-06-30 02:13:48 +08:00
gradlew.bat Add README and project documentation 2026-06-30 02:13:48 +08:00
README.md Add README and project documentation 2026-06-30 02:13:48 +08:00
settings.gradle Add README and project documentation 2026-06-30 02:13:48 +08:00

TodoList 项目概览

项目简介

这是一个轻量级的 TodoList 项目Android Studio用于本地管理待办事项。数据存储使用 SQLite界面与交互以简洁、易用为主。

主要功能

  • 创建、编辑、删除任务
  • 标记任务完成/未完成
  • 支持任务依赖关系(任务之间的先后约束)

优点

  • 轻量、启动快,适合单机离线使用
  • 使用 SQLite 本地存储,易于备份与迁移
  • 代码结构通常较简单,便于学习与扩展

缺点

  • 无云同步或多设备协同功能
  • 缺少用户/权限管理,安全与隐私需额外考虑
  • 对大量数据或复杂查询扩展性有限(需要额外优化或迁移到服务器端 DB

SQLite 数据表(说明)

  • todos存储任务的主表。

    • 常见字段id主键、title标题、description描述、status状态如 pending/in_progress/done/blocked、created_at、updated_at
    • 作用:保存每条任务的基本信息和状态,作为主要查询与显示的数据源。
  • todo_deps存储任务依赖关系。

    • 常见字段todo_id、depends_on都指向 todos.id
    • 作用:表示 "todo_id" 任务在执行上依赖于 "depends_on" 任务完成;用于在 UI 中提示、或在执行任务前校验依赖约束。

使用建议

  • 在对依赖或状态变更时使用事务transaction保证数据一致性
  • 为常用查询字段(如 status、created_at建立索引以提高查询性能
  • 若需要多设备同步,考虑后端服务或第三方同步方案

项目文件结构说明

  1. SplashActivity.java启动页APP 打开后展示过渡页面,自动跳转到登录或主界面;
  2. MainActivity.java主界面展示任务列表RecyclerView负责跳转到任务详情/编辑页;
  3. EditTaskActivity.java新建/编辑任务页面,包含标题、描述、截止日期、优先级、依赖设置等;
  4. LoginActivity.java登录页面处理用户认证流程
  5. RegisterActivity.java注册页面创建新用户账号
  6. UserManagementActivity.java用户管理查看/删除用户等);
  7. SettingsActivity.java应用设置页面例如备份/恢复、提醒设置等);
  8. DatabaseHelper.javaSQLiteOpenHelper 的实现,创建/升级数据库管理表todos、todo_deps、inbox_entries 等);
  9. TaskAdapter.java任务列表的 RecyclerView 适配器,负责任务项绑定与点击事件;
  10. UserAdapter.java用户列表的适配器在用户管理页面使用

系统核心功能

  • 任务管理(创建、查看、编辑、删除)
  • 任务状态(待办/进行中/完成/阻塞与任务依赖关系todo_deps
  • 用户认证与管理(登录/注册/用户列表)
  • 本地持久化SQLite与数据库升级策略由 DatabaseHelper 管理)
  • 基本设置与备份/恢复(通过设置页触发)

数据库表结构细节

1. users 表

字段名 数据类型 约束条件 字段说明 user_id INTEGER 主键、自增、非空 用户唯一编号 username TEXT UNIQUE 登录名(唯一) password TEXT MD5 哈希后的密码 is_admin INTEGER 默认 0 是否为管理员0 否1 是) nickname TEXT 可空 用户昵称(在升级到 v5 时新增)

2. tasks 表

字段名 数据类型 约束条件 字段说明 id INTEGER 主键、自增、非空 任务唯一编号 title TEXT 任务标题schema 中未显式声明 NOT NULL应用层应确保非空 completed INTEGER 默认 0 任务完成状态0 未完成1 已完成 task_date TEXT 任务日期/截止时间(以文本存储) priority INTEGER 默认 0 优先级,数值越大优先级越高 user_id_fk INTEGER 外键 -> users.user_id 任务所属用户(可为 NULL如果未分配

说明:

  • tasks 表在建表语句中包含 FOREIGN KEY(user_id_fk) REFERENCES users(user_id)。
  • 部分字段(如 title在数据库层未强制为非空但应用逻辑通常要求提供标题。
  • 密码以 MD5 存储(见 DatabaseHelper.md5这不安全于生产环境建议改用更安全的散列例如 bcrypt并添加盐值。
  • 在进行用户删除或批量更新时,请使用事务以保证数据一致性;在频繁查询状态或时间范围时,为相应字段建立索引以提升性能。

四、系统页面功能展示 本系统包含 N 个核心 Activity 页面,各页面功能与截图预留位置如下:

N 为本项目的实际页面数量(可替换为具体数值,例如 6

4.1 Splash 启动页面 功能:应用启动时展示过渡动画/Logo检查登录状态并自动跳转到登录页或主界面。 截图:

4.2 Main 主界面MainActivity 功能:显示任务列表(按优先级/时间排序)、搜索、筛选、切换用户(管理员可见全部任务),可进入任务详情或创建新任务。 截图:

4.3 编辑/新建任务EditTaskActivity 功能:创建或编辑任务,设置标题、详情、截止日期、优先级及依赖任务;保存后刷新列表。 截图:

4.4 登录页面LoginActivity 功能:用户输入用户名/密码进行登录,支持跳转到注册页;登录失败显示错误提示。 截图:

4.5 用户管理UserManagementActivity 功能:管理员查看/删除用户、查看用户任务统计、为用户分配任务或重置密码。 截图:

4.6 设置页SettingsActivity 功能:备份/恢复数据库、导出/导入任务、应用配置(提醒、主题等)。 截图:

每个 Activity 职责与主要方法(简要)

  1. SplashActivity.java

    • 职责:展示启动过渡页/Logo检查登录状态并导航到 Login 或 Main。
    • 主要方法onCreate初始化视图、启动动画、checkLoginStatus决定跳转
  2. MainActivity.java

    • 职责:主界面,显示任务列表,支持搜索、筛选、排序、进入任务详情或新建任务。
    • 主要方法onCreate初始化 RecyclerView 与适配器、loadTasks从 DB 加载任务、onActivityResult处理新增/编辑返回、setupListeners处理点击与筛选
  3. EditTaskActivity.java

    • 职责:新建或编辑任务,填写标题、详情、截止日期、优先级与依赖任务。
    • 主要方法onCreate加载现有任务或准备新任务表单、saveTask验证表单并写入数据库、pickDependency选择依赖任务
  4. LoginActivity.java

    • 职责:处理用户登录流程,校验凭证并启动会话(或提示错误);支持跳转到注册页。
    • 主要方法onCreate表单初始化、attemptLogin校验用户名/密码,调用 DatabaseHelper.login、onLoginSuccess/onLoginFail。
  5. RegisterActivity.java

    • 职责:新用户注册表单,创建用户账号并可跳转登录。
    • 主要方法onCreate表单初始化、registerUser表单验证并调用 DatabaseHelper.registerUser、showResult注册结果提示
  6. UserManagementActivity.java

    • 职责:供管理员管理用户(查看、删除、重置密码、查看任务统计)。
    • 主要方法onCreate加载用户列表、deleteUser删除用户及其任务、showUserDetails查看/编辑用户信息)。
  7. SettingsActivity.java

    • 职责:应用设置入口,提供备份/恢复、导入/导出、通知与主题等设置项。
    • 主要方法onCreate加载设置项、backupDatabase/restoreDatabase、exportTasks/importTasks、applyPreferences。

说明:每个 Activity 通常在 onCreate 中完成视图绑定与事件注册;涉及数据库的操作通过 DatabaseHelper 封装,长耗时操作应在后台线程处理(例如使用 AsyncTask、Thread 或现代的 WorkManager/Coroutine