网络资源模板--Android Studio 实现简易记事本App

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码


一、项目演示

网络资源模板--基于Android studio 实现的简易记事本App

二、项目测试环境

三、项目详情

首页

  1. 创建一个空的笔记本列表 mNotebookList
  2. 使用该列表和指定的布局资源 item_notebook 创建适配器 mAdapter
  3. 设置 RecyclerView 的布局管理器为线性布局。
  4. 将适配器设置到 RecyclerView 上。
  5. 设置空视图,当列表没有数据时显示 view_no_data 视图。
java 复制代码
 mNotebookList = new ArrayList<>(); // 初始化笔记本列表
        mAdapter = new NotebookAdapter(R.layout.item_notebook, mNotebookList); // 创建适配器

        recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 设置布局管理器
        recyclerView.setAdapter(mAdapter); // 设置适配器
        mAdapter.setEmptyView(R.layout.view_no_data); // 设置空视图

添加页面

  1. 根布局

    • 使用 RelativeLayout 作为根布局,宽高设置为填充父布局。
  2. 标题栏

    • 包含一个 RelativeLayout,高度为 50dp,背景色为主题色。
    • 里面有三个子视图:
      • 一个返回按钮 ImageView,显示一个后退图标。
      • 一个标题 TextView,显示应用名称,居中显示。
      • 一个删除按钮 ImageView,位于右侧,显示一个删除图标。
  3. 输入框

    • 一个 EditText 用于输入笔记内容,设置了提示文本"请输入内容...",并在标题栏下方、保存按钮上方显示。
  4. 保存按钮

    • 一个 Button,宽度填充父布局,位于底部,背景为自定义 drawable,文本为"保存"。
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@id/layout_title"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="@color/color_theme"
        android:orientation="horizontal"
        android:paddingHorizontal="@dimen/dp_10"
        android:paddingLeft="@dimen/dp_10"
        android:paddingRight="@dimen/dp_10">

        <ImageView
            android:id="@+id/image_back"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_back" />

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:text="@string/app_name"
            android:textColor="@color/White"
            android:textSize="15sp" />

        <ImageView
            android:id="@+id/image_delete"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_delete" />
    </RelativeLayout>

    <EditText
        android:id="@+id/edit_notebook"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/btn_save"
        android:layout_below="@id/layout_title"
        android:layout_margin="@dimen/dp_10"
        android:background="@color/White"
        android:gravity="top"
        android:hint="请输入内容..."
        android:padding="@dimen/dp_10"
        android:textSize="15sp" />

    <Button
        android:id="@+id/btn_save"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/dp_40"
        android:layout_alignParentBottom="true"
        android:layout_margin="@dimen/dp_10"
        android:background="@drawable/bg_login"
        android:text="保存"
        android:textColor="@color/White"
        android:textSize="15sp" />
</RelativeLayout>

修改页面

  1. 内容检查

    • 使用 TextUtils.isEmpty() 方法检查输入内容是否为空。如果为空,显示一个短暂的提示 (Toast),并返回,不执行后续保存逻辑。
  2. 更新已存在的笔记本

    • 如果 mNotebookBean 不为空,说明是对已有笔记本进行编辑。更新其内容和编辑时间,然后调用 mDBManager.updateNotebook(mNotebookBean) 方法更新数据库中的记录。
  3. 新建笔记本

    • 如果 mNotebookBean 为空,创建一个新的 NotebookBean 对象,设置内容和编辑时间,然后调用 mDBManager.insertNotebook(newNotebook) 方法将新记录插入数据库。
  4. 结束活动

    • 最后,设置结果为 RESULT_OK,并调用 finish() 方法结束当前活动,返回到之前的界面。
java 复制代码
   private void save(String content) {
        if (TextUtils.isEmpty(content)) {
            Toast.makeText(this, "您还未输入内容", Toast.LENGTH_SHORT).show(); // 提示用户输入内容
            return;
        }

        if (mNotebookBean != null) {
            // 更新已存在的笔记本内容
            mNotebookBean.setContent(content);
            mNotebookBean.setEditTime(System.currentTimeMillis()); // 更新编辑时间
            mDBManager.updateNotebook(mNotebookBean); // 更新数据库
        } else {
            // 新建笔记本
            NotebookBean newNotebook = new NotebookBean();
            newNotebook.setContent(content);
            newNotebook.setEditTime(System.currentTimeMillis()); // 设置编辑时间
            mDBManager.insertNotebook(newNotebook); // 插入数据库
        }

        setResult(RESULT_OK); // 设置结果为成功
        finish(); // 结束活动
    }

四、完整的项目源码

👇👇👇👇👇快捷获取方式👇👇👇👇👇

相关推荐
诸神黄昏EX1 小时前
Android Safety 系列专题【篇二:AVB签名】
android
2601_949543011 小时前
Flutter for OpenHarmony垃圾分类指南App实战:意见反馈实现
android·flutter
urkay-2 小时前
Android 中实现 HMAC-SHA256
android·开发语言·python
YIN_尹2 小时前
【MySQL】增删查改的艺术——数据库CRUD完全指南(下)
android·数据库·mysql
m0_748233172 小时前
PHP8.0新特性全解析
android
一起养小猫2 小时前
Flutter for OpenHarmony 实战:从零开发一款五子棋游戏
android·前端·javascript·flutter·游戏·harmonyos
●VON3 小时前
从像素到语义:React Native Text 组件在 OpenHarmony 上的渲染哲学与工程实现
android·react native·react.js
henysugar3 小时前
Android studio编译aidl若干问题记录
android·ide·android studio·aidl
阿斌_bingyu7093 小时前
FastAdmin 混合式语言包添加繁体中文(zh-tw)完整教程
android·ide
CreeLu3 小时前
Android抓取火焰图
android