简单书籍信息管理app(安卓+SQLite)

前言

本程序是对于B站视频【android-sqlite数据库基本操作|快速入门|增删改查|基础】讲解的复现与总结。原视频链接如下http:// https://www.bilibili.com/video/BV1YY4y1M77G/?share_source=copy_web&vd_source=225ab65670127697252f369e1861a02c

本程序实现了自建安卓数据库,并且在数据库中可以执行增、删、改、查,等基本操作。

程序除了前端UI代码之外还包含MainActivity,MyDataHelper,BookModel,UpdateActivity这四个后端项目文件。

MainActivity 负责显示所有书籍列表、添加新书籍和处理每本书的删除和修改操作。

MyDataHelper 是数据库帮助类,处理数据库的创建、表的操作(增、删、改、查)。

BookModel 是书籍模型类,定义了书籍的属性和方法。

UpdateActivity 用于修改书籍信息,从 MainActivity 接收书籍信息,更新后保存到数据库。

后文也会分别对这些活动进行介绍。

UI

MainActivity的界面

除了常见的Plain Text和Button之外,我还使用了ListView。ListView用于展示添加的书籍信息,并且可以对信息进行修改或者删除。

更多关于ListView组件的使用方法可以参考官方文档

https://developer.android.com/reference/android/widget/ListView

代码如下

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/add_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="标题"
        android:inputType="text"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/add_author"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="作者"
        android:inputType="text"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/add_title" />

    <Button
        android:id="@+id/add_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="添加"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/add_author" />

    <ListView
        android:id="@+id/view_all"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="30dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="30dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/add_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>

UpdateActivity的界面

这个界面是在MainActivity中点击ListView里的任一书籍信息,即可跳转到此。

代码如下 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".UpdateActivity">

    <EditText
        android:id="@+id/update_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="标题"
        android:inputType="text"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/update_author"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="作者"
        android:inputType="text"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/update_title" />

    <Button
        android:id="@+id/update_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="确定修改"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/update_author" />
</androidx.constraintlayout.widget.ConstraintLayout>

功能

BookModel

这个活动首先利用构造函数对新的数据进行存储

public BookModel(Integer id, String title, String author) {
        this.id = id;
        this.title = title;
        this.author=author;
    }

然后是重写toString方法,让它返回书籍在数据库中存储的id,书名和作者名,并且方便输出

 @Override
    public String toString() {
        return "BookModel{" +
                "书籍id=" + id +
                ", 书名='" + title + "'" +
                ", 作者='" + author + "'" +
                "}";
    }

最后是通过创建一系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值