从零开始用Android Studio开发一款记事本APP(附完备代码)

[复制链接]
发表于 2025-8-29 17:30:53 | 显示全部楼层 |阅读模式
从零开始用Android Studio开发一款记事本APP(附完备代码


媒介

在移动互联网时代,记事本APP已成为用户记载生活、工作和学习的告急工具。本文将手把手教你如何从零开始,使用Android Studio开发一款具备增删改查功能的记事本APP。文章涵盖需求分析技术选型数据库设计焦点功能实现界面开发,并提供完备代码和效果图,适合Android开发新手学习。

一、开发环境准备


  • 安装Android Studio

    • 下载地址:Android Studio获取,搭配保姆级教程
    • 保举版本:2023.1.1及以上
    • 安装时勾选Android SDK和虚拟装备(建议选择Android 11或更高版本)。

  • 设置项目依靠
    在build.gradle中添加以下依靠:
    1. dependencies {
    2.     implementation 'androidx.recyclerview:recyclerview:1.3.2'  // RecyclerView
    3.     implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'  // 简化RecyclerView适配器
    4. }
    复制代码

二、项目创建与基础设置


  • 新建项目

    • 选择模板:Empty Activity
    • 包名:com.example.notebook
    • 语言:Java

  • 权限设置
    在AndroidManifest.xml中添加存储权限:
    1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    复制代码

三、数据库设计(SQLite)

1. 创建数据库

定义NotebookBean实体类:
  1. public class NotebookBean implements Parcelable {
  2.     private int notebookId;
  3.     private String content;
  4.     private long editTime;
  5.     // Getter & Setter、Parcelable实现(略)
  6. }
复制代码
2. 数据库操作类(DBManager)

  1. public class DBManager {
  2.     private static final String TABLE_NAME = "notebook";
  3.     private static final String CREATE_TABLE =
  4.         "CREATE TABLE " + TABLE_NAME + " (" +
  5.         "notebookId INTEGER PRIMARY KEY AUTOINCREMENT, " +
  6.         "content TEXT, " +
  7.         "editTime INTEGER)";
  8.     public DBManager(Context context) {
  9.         SQLiteDatabase db = context.openOrCreateDatabase("notebook.db", Context.MODE_PRIVATE, null);
  10.         db.execSQL(CREATE_TABLE);
  11.     }
  12.     // 增删改查方法(代码见下文)
  13. }
复制代码

四、焦点功能实现

1. 主界面(RecyclerView展示数据)

结构文件: activity_main.xml
  1. <LinearLayout>
  2.     <RecyclerView
  3.         android:id="@+id/recycler_view"
  4.         android:layout_width="match_parent"
  5.         android:layout_height="match_parent" />
  6.     <Button
  7.         android:id="@+id/btn_add"
  8.         android:text="添加记事" />
  9. </LinearLayout>
复制代码
焦点代码:
  1. public class MainActivity extends AppCompatActivity {
  2.     private RecyclerView recyclerView;
  3.     private DBManager dbManager;
  4.     private List<NotebookBean> dataList = new ArrayList<>();
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.         setContentView(R.layout.activity_main);
  9.         // 初始化RecyclerView
  10.         recyclerView.setLayoutManager(new LinearLayoutManager(this));
  11.         NotebookAdapter adapter = new NotebookAdapter(dataList);
  12.         recyclerView.setAdapter(adapter);
  13.         // 加载数据
  14.         dbManager = new DBManager(this);
  15.         dataList.addAll(dbManager.selectNotebookList());
  16.         adapter.notifyDataSetChanged();
  17.     }
  18. }
复制代码
2. 添加/编辑记事功能

结构文件: activity_add_notebook.xml
  1. <EditText
  2.     android:id="@+id/edit_content"
  3.     android:hint="输入内容..." />
  4. <Button
  5.     android:id="@+id/btn_save"
  6.     android:text="保存" />
复制代码
焦点代码:
  1. public class AddNotebookActivity extends AppCompatActivity {
  2.     private EditText editContent;
  3.     private DBManager dbManager;
  4.     @Override
  5.     protected void onCreate(Bundle savedInstanceState) {
  6.         super.onCreate(savedInstanceState);
  7.         setContentView(R.layout.activity_add_notebook);
  8.         editContent = findViewById(R.id.edit_content);
  9.         dbManager = new DBManager(this);
  10.         findViewById(R.id.btn_save).setOnClickListener(v -> {
  11.             String content = editContent.getText().toString();
  12.             if (!content.isEmpty()) {
  13.                 dbManager.insertNotebook(new NotebookBean(content, System.currentTimeMillis()));
  14.                 finish();
  15.             }
  16.         });
  17.     }
  18. }
复制代码
3. 双击退出功能

  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3.     if (keyCode == KeyEvent.KEYCODE_BACK) {
  4.         if (isDoubleClick) {
  5.             finish();
  6.         } else {
  7.             Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
  8.             isDoubleClick = true;
  9.             new Handler().postDelayed(() -> isDoubleClick = false, 2000);
  10.         }
  11.         return true;
  12.     }
  13.     return super.onKeyDown(keyCode, event);
  14. }
复制代码

五、界面美化与优化


  • 使用Material Design组件

    • 添加依靠:implementation 'com.google.android.material:material:1.9.0'
    • 替换Button为MaterialButton,提升视觉效果。

  • 颜色主题设置
    在res/values/themes.xml中定义主题色:
    1. <style name="AppTheme" parent="Theme.Material3.Light">
    2.     <item name="colorPrimary">#4CAF50</item> <!-- 青绿色 -->
    3. </style>
    复制代码

六、完备代码与效果图


  • 点击下方链接获取安卓练手项目源代码和文档报告。
    简朴记事本带文档
  • 效果图展示







七、常见问题办理


  • 数据库表未创建?

    • 检查DBManager构造函数中是否执行了CREATE_TABLE语句。

  • RecyclerView不显示数据?

    • 确保NotebookAdapter正确绑定了数据,并调用notifyDataSetChanged()。

  • 权限申请失败?

    • Android 6.0以上需动态申请权限,参考ActivityCompat.requestPermissions()。


结语

通过本文,你已掌握使用Android Studio开发记事本APP的全流程。从数据库设计到界面交互,每个步调均提供了详细代码息争释。后续可扩展功能:


  • 添加分类标签
  • 支持图片和语音
  • 数据云同步
立即动手实践,打造你的专属记事本吧!
好的,关于这个问题我们本日就先分享到这里,渴望能帮助到屏幕前为代码发愁的您。如果以为有帮助,渴望友友们给个好评,支持一下创作者不易。点击下方链接获取安卓练手项目源代码和文档报告。
简朴记事本带文档


**© 版权声明:本文为原创文章,转载请注明出处。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表