当前位置: 首页 > news >正文

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

目录

一、测试环境说明

二、项目简介

三、项目演示

四、部设计详情(部分)

登陆页面

笔记列表

添加笔记

五、项目源码 


一、测试环境说明

电脑环境

Windows 11

编写语言

JAVA

开发软件

Android Studio  (2020)

开发软件只要大于等于测试版本即可(近几年官网直接下载也可以),若是版本低于测试版本请自行测试。项目需要根据你的软件自行适配

二、项目简介

本记事本应用是基于Android平台开发的一款简洁高效的笔记管理工具,采用Java语言和SQLite数据库实现核心功能。

系统主要包含用户登录验证、笔记列表展示、笔记增删改查等核心模块,通过精心设计的用户界面提供流畅的操作体验。

应用采用了MVC架构模式,将数据存储、业务逻辑和界面展示分离,保证了代码的可维护性和扩展性。在功能实现上,系统支持笔记的创建、编辑、删除和浏览,特别设计了便捷的翻页功能,用户可以快速查看上一条、下一条或最后一条笔记。

该项目由编程乐学团队技术介入,进行功能修改完善。

三、项目演示

网络资源模板--基于Android studio 记事本App

四、部设计详情(部分)

登陆页面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/img"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="100dp"android:text="欢迎来到我的记事本!"android:textSize="35sp"android:textStyle="italic" /><EditTextandroid:id="@+id/user"android:layout_width="match_parent"android:layout_height="40dp"android:layout_marginTop="80dp"android:drawableLeft="@drawable/user"android:hint="请输入用户名"android:padding="10dp"android:textSize="18sp"></EditText><EditTextandroid:id="@+id/psw"android:layout_width="match_parent"android:layout_height="40dp"android:layout_marginTop="30dp"android:drawableLeft="@drawable/psw"android:hint="请输入用户密码"android:padding="10dp"android:textSize="18sp"></EditText><Buttonandroid:id="@+id/login"android:layout_width="match_parent"android:layout_height="40dp"android:layout_gravity="center"android:layout_marginTop="50dp"android:background="@color/white"android:text="立 即 登 录"android:textSize="18sp"android:textStyle="bold" />
</LinearLayout>

登录页面是用户接触应用的第一界面,设计简洁直观,主要由用户名和密码输入框以及登录按钮组成。页面背景采用柔和的图片底纹,上方居中显示欢迎标题,整体布局清爽而不失美观。两个输入框左侧配有图标提示,增强视觉引导,所有元素采用垂直线性布局排列,符合用户从上到下的阅读习惯。

在交互逻辑上,当用户点击登录按钮时,系统会验证输入的用户名和密码是否匹配预设值(admin/123456)。验证通过后跳转至笔记列表页面,并携带用户名信息;验证失败则显示错误提示,要求用户重新输入。输入框设计了基本的文本监听,确保可以获取用户输入内容。整个验证过程在主线程中同步进行,响应迅速。

视觉设计方面,登录按钮使用纯色背景与文字形成高对比度,提高可点击性。输入框设置适当的边距和内边距,确保触摸区域充足。错误提示采用Android原生的Toast组件,短暂显示后自动消失,不打断用户操作流。页面所有文本元素使用统一的字体风格和大小,保持视觉一致性。

安全性考虑上,虽然当前实现为简单的硬编码验证,但设计了良好的扩展点,便于后续集成更复杂的安全机制如加密存储、多次尝试锁定等。页面跳转时使用标准的Intent机制,确保导航逻辑清晰可追踪。

笔记列表

package com.example.myshiyan5;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;public class NotepadActivity extends AppCompatActivity {// 用于显示便签的列表ListView listView;// 便签数据列表List<NotepadBean> list;// 数据库助手类DBHelper mSQLiteHelper;// 便签适配器NotepadAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_notepad);// 找到用于显示便签的列表控件listView = (ListView) findViewById(R.id.listview);// 找到添加按钮ImageView add = (ImageView) findViewById(R.id.add);// 为添加按钮设置点击事件add.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 创建意图,启动记录活动Intent intent = new Intent(NotepadActivity.this,RecordActivity.class);startActivityForResult(intent, 1);}});// 初始化数据的方法initData();}protected void initData() {// 创建数据库助手对象mSQLiteHelper = new DBHelper(this);// 显示查询的数据showQueryData();// 为列表设置项点击事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {// 获取点击位置的便签对象NotepadBean notepadBean = list.get(position);// 创建意图,携带便签相关信息,启动记录活动Intent intent = new Intent(NotepadActivity.this, RecordActivity.class);intent.putExtra("id", notepadBean.getId());intent.putExtra("time", notepadBean.getNotepadTime()); // 记录的时间intent.putExtra("content", notepadBean.getNotepadContent()); // 记录的内容intent.putExtra("title", notepadBean.getNoteTitle()); // 记录的内容NotepadActivity.this.startActivityForResult(intent, 1);}});// 长按事件listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, final intposition, long id) {// 创建对话框AlertDialog dialog;AlertDialog.Builder builder = new AlertDialog.Builder(NotepadActivity.this).setMessage("是否删除本日记?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 获取要删除的便签对象NotepadBean notepadBean = list.get(position);// 如果从数据库删除成功if (mSQLiteHelper.deleteData(notepadBean.getId())) {// 从列表中移除该便签list.remove(position);// 通知适配器数据改变adapter.notifyDataSetChanged();// 显示删除成功提示Toast.makeText(NotepadActivity.this, "删除成功",Toast.LENGTH_SHORT).show();}}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();// 关闭对话框}});dialog = builder.create();dialog.show(); // 显示对话框return true;}});}private void showQueryData() {if (list!= null) {        // 如果列表不为空,先清空list.clear();}list = mSQLiteHelper.query();        // 从数据库中查询数据(保存的便签)adapter = new NotepadAdapter(this, list);        // 创建适配器listView.setAdapter(adapter);        // 为列表设置适配器}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1 && resultCode == 2) {        // 如果请求码和结果码符合特定要求showQueryData();            // 再次显示查询的数据}}
}

笔记列表页面采用经典的列表式布局,顶部为粉色的标题栏,右侧悬浮圆形添加按钮,下方为充满屏幕的列表视图。标题栏明确标识应用名称和功能,添加按钮设计醒目且符合Material Design的FAB按钮理念,便于用户快速识别主要操作。

列表项设计简洁高效,每个条目显示笔记标题和创建时间两行文字,标题字体较大且加粗,时间信息较小且采用灰色,形成清晰的视觉层次。足够的行高和边距确保列表易于浏览和点击。长按列表项会弹出删除确认对话框,防止误操作。

功能实现上,页面加载时自动查询数据库获取所有笔记记录,按ID降序排列,确保最新笔记显示在最上方。列表使用自定义适配器(NotepadAdapter)绑定数据,优化了视图重用机制,即使笔记数量很多也能流畅滚动。点击列表项跳转到记录页面查看或编辑完整内容,点击添加按钮则跳转到空白记录页面创建新笔记。

页面还处理了数据库变化的实时更新,通过Activity结果回调机制,当从记录页面返回时自动刷新列表显示,确保用户总是看到最新数据。删除功能通过AlertDialog实现二次确认,避免误删重要笔记,确认删除后立即更新列表显示。

添加笔记

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/note_name"android:layout_width="match_parent"android:layout_height="80dp"android:textSize="30sp"android:textColor="#000000"android:gravity="center"android:textStyle="bold"android:background="#ffb6c1"android:text="我的日记本"/><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/note_name"></ListView><ImageViewandroid:id="@+id/add"android:text="添加日记"android:layout_width="50dp"android:layout_height="50dp"android:textSize="17sp"android:background="@drawable/add"android:layout_marginRight="20dp"android:layout_marginTop="15dp"android:layout_alignParentTop="true"android:layout_alignParentRight="true"/>
</RelativeLayout>

添加笔记页面设计为全功能编辑界面,顶部为返回按钮和页面标题,下方依次为自动生成的时间显示(初始隐藏)、标题输入框和内容输入框,底部为操作按钮栏。页面采用线性布局,各功能区划分清晰,编辑区域占据主要屏幕空间。

标题输入框设计简洁,居中提示文字引导用户输入。内容输入框支持多行文本,光标初始定位在顶部,方便立即开始输入。底部按钮栏对称分布删除和保存两个操作,图标直观易懂。翻页按钮组初始状态隐藏,仅在查看现有笔记时显示。

功能实现上,页面有两种进入方式:创建新笔记时只显示必填字段;编辑现有笔记时显示全部信息包括时间戳和翻页按钮。保存操作会验证标题和内容是否为空,防止保存无效数据。时间戳在保存时自动生成,确保每条笔记都有准确的创建或修改时间。

用户交互方面,返回按钮直接关闭页面,删除按钮清空当前编辑内容,保存按钮执行验证后持久化数据并返回列表页面。所有按钮都有适当的点击反馈,操作结果通过Toast提示用户。键盘弹出时自动调整界面,确保输入框不被遮挡。

五、项目源码 

👇👇👇👇👇快捷方式👇👇👇👇👇

http://www.dtcms.com/a/275762.html

相关文章:

  • 通过卫星图像追踪城市扩张
  • Windows npx n8n 方式运行n8n密码忘了重置密码
  • IDEA中一个服务创建多个实例
  • PyQt5布局管理(QBoxLayout(框布局))
  • 企业商业秘密保卫战:经营信息类案件维权全攻略
  • WildCard野卡已跑路(包含gpt plus升级方案)
  • C++结构体嵌套
  • Datawhale AI夏令营 MCP初体验——简历小助手
  • DeepSeek-Qwen蒸馏模型解析
  • 苍穹外卖-day06
  • 自助空间系统迭代历程|自助门店运营系统全新升级
  • AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kimi‑K2开源大模型解读与实践
  • 电子电气架构 --- ECU存储与计算资源冗余设计规范
  • 实习内容总结
  • 笔记/了解未来:财务建模与预测
  • 系统思考助力转型
  • Git企业级开发(最终篇)
  • 【PTA数据结构 | C语言版】车厢重排
  • JDBC 事务控制详解:保障数据安全的完整指南
  • ​Windows API 介绍及核心函数分类表
  • 使用langgraph 构建RAG 智能问答代理
  • Kotlin文件
  • 【GESP】C++ 2025年6月一级考试-客观题真题解析
  • 小学家长和老师最喜欢的出题神器!
  • 大模型量化相关
  • 二分法寻找无序序列的峰值
  • 【Scratch】从入门到放弃(五):指令大全-运算、变量、自制积木
  • 第14次课 认识图 A
  • 一分钟快速了解Apache
  • 阿里开源AI大模型ThinkSound如何为视频配上灵魂之声