小工具知识网

当前位置: 首页 > 行业知识 > Android Studio 实现图书借阅(管理)系统

行业知识

Android Studio 实现图书借阅(管理)系统

2026-10-31 19:57:57 来源:互联网转载

一、高质量源码(非开源,白嫖低价勿扰)

关注公众号:《编程乐学》

后台回复:24012101

目录

前言

一、任务介绍

1.1 背景

1.2目的和意义

二、 实现介绍

视频演示

2.1 启动页实现

2.2 注册页面实现

2.3 登陆页面实现

2.4 图书列表的实现

2.5 当前借阅页面实现               

 2.6 我的页面实现  

 2.7 归还图书页面实现 

三、获取源码


前言

       本系统将充分利用Android Studio提供的丰富功能和优秀性能,以用户友好的界面设计和智能化的功能模块,为用户带来全新的图书借阅体验。同时,该系统的开发将有助于促进图书馆管理的现代化和智能化进程,提升图书馆的服务质量和核心竞争力。

一、任务介绍

1.1 背景

        随着社会的发展,图书馆作为知识的仓库和学习的场所,扮演着至关重要的角色。然而,传统的图书借阅管理方式已经难以满足当代信息化、智能化的需求。为了更好地适应现代化管理需求,本系统基于Android Studio平台,旨在实现一套便捷高效的图书借阅和管理系统。

1.2目的和意义

         提升借阅体验:传统的图书借阅方式需要读者亲自到图书馆办理借书手续,耗费时间和精力。通过该系统,读者可以在线浏览图书馆的书籍目录、借阅图书,无需到图书馆现场,大大提升了借阅的便捷性和效率。

二、实现介绍

视频演示

Android studio期末设计大作业~图书借阅(管理)系统

2.1 启动页实现

    

2.2 注册页面实现

                                                

        这段代码实现了一个简单的注册页面,可以输入用户名和密码进行注册,同时要求输入的密码和重复密码一致。注册成功后,会插入数据库并跳转到登录页面;注册失败则显示失败的提示。

package com.example.booklendingsystem.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.example.booklendingsystem.R;public class RegisterActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_register);        initView();        register();        login();    }    // 返回到登陆页面    private void login() {        tvLogin.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                finish();            }        });    }    private void register() {        // 点击注册按钮进行验证        btnRegister.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                               // 判断是否输入内容                if (username.isEmpty() || password.isEmpty()) {                    Toast.makeText(getApplicationContext(), "请输入账号或密码", Toast.LENGTH_SHORT).show();                    return;                }                // 判断两次密码是否一致                if (passwordrepeat.equals(password) && password.equals(passwordrepeat)) {                                    if (result) {                        Toast.makeText(getApplicationContext(), "注册成功", Toast.LENGTH_SHORT).show();                        Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);                        startActivity(intent);                        finish();                    } else {                        Toast.makeText(getApplicationContext(), "注册失败", Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(getApplicationContext(), "两次密码不同,请检查!", Toast.LENGTH_SHORT).show();                }            }        });    }   }

2.3 登陆页面实现

                                                                        

        这段代码实现了一个简单的登录页面,可以输入用户名和密码进行登录,可以选择是否保存密码,还可以跳转到注册页面进行账号注册。

package com.example.booklendingsystem.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.example.booklendingsystem.R;public class LoginActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        initView();        register();        login();    }     // 进行账号密码验证实现登录    private void login() {        mLoginButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 获取输入的内容                String username = mUserNameEditText.getText().toString().trim();                String password = mPasswordEditText.getText().toString().trim();                                    // 判断输入的内容是否为空                if (username.isEmpty() || password.isEmpty()) {                    Toast.makeText(getApplicationContext(), "请输入账号或密码", Toast.LENGTH_SHORT).show();                    return;                }                if (result) {                    Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show();                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);                    startActivity(intent);                    finish();                } else {                    Toast.makeText(getApplicationContext(), "账号或密码错误", Toast.LENGTH_SHORT).show();                }            }        });    }    // 跳转注册页面    private void register() {        rEgisterText.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);                startActivity(intent);            }        });    }    }

2.4 图书列表的实现

        在点击借阅按钮的点击监听器中,获取了输入的学号和借阅人的信息,并进行了一些判断和处理。如果输入为空,会显示提示消息;如果输入不为空,会检查数据库中是否已有借阅记录,如果有,则显示提示消息,如果没有,则将借阅信息添加到数据库中,并显示借阅成功的提示消息。

        最后,将适配器设置给 ListView,并返回显示列表的视图。        

package com.example.booklendingsystem.Fragment;import android.os.Bundle;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.appcompat.app.AlertDialog;import androidx.fragment.app.Fragment;import com.example.booklendingsystem.Bean.BookList;import com.example.booklendingsystem.Bean.BorrowInfo;import com.example.booklendingsystem.Helper.BookHelper;import com.example.booklendingsystem.R;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.Locale;import java.util.TimeZone;public class BookListFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_book_list, container, false);        // 创建 BorrowInfo 对象        final ArrayList bookList = new ArrayList();        bookList.add(new BookList(R.drawable.gava, "《Java从入门到精通(第7版)》", "明日科技", "《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具(IDEA、Eclipse),Java语言基础,流程控制,数组,类和对象,继承、多态、抽象类与接口,包和内部类,异常处理,字符串,常用类库,集合类,枚举类型与泛型,lambda表达式与流处理,I/O(输入/输出),反射与注解,数据库操作,Swing程序设计,Java绘图,多线程,并发,网络通信,飞机大战游戏,MR人脸识别打卡系统。书中所有知识都结合具体实例进行讲解,涉及的程序代码都给出了详细的注释,这可以帮助读者轻松领会Java程序开发的精髓,并快速提高开发技能。"));         // 创建适配器        ArrayAdapter adapter = new ArrayAdapter(getActivity(), R.layout.item_book, bookList) {            @NonNull            @Override            public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {                if (convertView == null) {                    convertView = getLayoutInflater().inflate(R.layout.item_book, parent, false);                }                ImageView imageView = convertView.findViewById(R.id.img_book);                TextView bookNameView = convertView.findViewById(R.id.tv_bookName);                TextView authorView = convertView.findViewById(R.id.tv_author);                TextView descriptionView = convertView.findViewById(R.id.tv_description);                BookList currentBook = getItem(position);                if (currentBook != null) {                    imageView.setImageResource(currentBook.getImageResource());                    bookNameView.setText(currentBook.getTitle());                    authorView.setText(currentBook.getAuthor());                    descriptionView.setText(currentBook.getDescription());                }                return convertView;            }        };        ListView listView = view.findViewById(R.id.lv);        listView.setAdapter(adapter);        return view;    }}

对应的布局文件代码如下所示:

            

 2.5 当前借阅页面实现               

                

         首先,在 onCreateView 方法中,加载了布局文件并初始化了视图。然后,在 setupListView 方法中,获取了所有的借阅信息,并将其倒序排列。

接下来,创建了一个自定义的适配器 BookAdapter,并将其设置给 ListView。

        最后,在 getAllBorrowInfoFromDatabase 方法中,通过 BookHelper 类从数据库中获取了所有的借阅信息。

package com.example.booklendingsystem.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ListView;import androidx.fragment.app.Fragment;import com.example.booklendingsystem.Adapter.BookAdapter;import com.example.booklendingsystem.Bean.BorrowInfo;import com.example.booklendingsystem.R;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class LoanRecordFragment extends Fragment {    private ListView listView;    private BookAdapter bookAdapter; // 自定义适配器    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_loan_record, container, false);        initView(view);        setupListView(); // 设置ListView        return view;    }    private void initView(View view) {        listView = view.findViewById(R.id.lst_orders);    }    // 设置ListView及其适配器    private void setupListView() {               listView.setAdapter(bookAdapter); // 设置适配器    }  }

 2.6 我的页面实现  

        实现了一个包含三个按钮的界面,分别是归还图书、修改密码和退出登录。当用户点击这些按钮时,会触发相应的操作。

        在 onCreateView 方法中,通过 findViewById 方法获取到了三个按钮的实例,并分别为它们设置了点击事件监听器。

        当用户点击归还图书按钮时,会跳转到 BackBookActivity 页面;当用户点击修改密码按钮时,会弹出一个自定义的对话框,让用户输入新密码并进行确认,然后更新密码并跳转到登录页面;

        当用户点击退出按钮时,会弹出一个对话框确认是否退出,并在用户确认退出后跳转到登录页面。

        还实现了一个 initView 方法用于初始化界面的控件,以及 edit、modify 和 backbook 方法用于处理按钮的点击事件。

package com.example.booklendingsystem.Fragment;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.Toast;import androidx.appcompat.app.AlertDialog;import androidx.fragment.app.Fragment;import com.example.booklendingsystem.Activity.BackBookActivity;import com.example.booklendingsystem.Activity.LoginActivity;import com.example.booklendingsystem.Helper.UsersHelper;import com.example.booklendingsystem.R;import static android.content.Context.MODE_PRIVATE;public class MineFragment extends Fragment {    private LinearLayout llBackBook;    private LinearLayout llEdit;    private LinearLayout llModifymm;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_mine, container, false);        initView(view);        edit();        modify();        backbook();        return view;    }    // 进入归还图书页面    private void backbook() {        llBackBook.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(getActivity(), BackBookActivity.class);                startActivity(intent);            }        });    }    private void modify() {        llModifymm.setOnClickListener(new View.OnClickListener() {            private EditText dialogEtRmm;            private EditText dialogEtNmm;            private EditText dialogEtUser;            private Button btnCancel;            private Button btnModify;            @Override            public void onClick(View v) {                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());                final View dialogView = getLayoutInflater().inflate(R.layout.dialog_modifymm, null);                // 获取控件                dialogEtUser = dialogView.findViewById(R.id.dialog_et_user);                dialogEtNmm = dialogView.findViewById(R.id.dialog_et_nmm);                dialogEtRmm = dialogView.findViewById(R.id.dialog_et_rmm);                btnModify = dialogView.findViewById(R.id.btn_modify);                btnCancel = dialogView.findViewById(R.id.btn_cancel);                builder.setView(dialogView);                // 创建对话框并声明为 final                final AlertDialog dialog = builder.create();                dialog.show();                // 点击取消关闭对话框                btnCancel.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        dialog.dismiss();                    }                });                // 点击修改按钮后的添加操作                btnModify.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                          dialog.dismiss();                        } else {                            Toast.makeText(getActivity(), "修改密码失败,请检查用户名是否正确!", Toast.LENGTH_SHORT).show();                        }                    }                });            }        });    }    // 退出    private void edit() {        llEdit.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 创建一个AlertDialog.Builder对象                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());                // 设置对话框的标题和内容                builder.setTitle("提示")                        .setMessage("确定要退出吗?")                        // 设置取消按钮(左边的按钮)                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog, int id) {                                // 用户点击取消按钮时,不执行任何操作                                dialog.dismiss();                            }                        })                        // 设置确定按钮(右边的按钮)                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog, int id) {                                // 跳转登陆页面                                Intent intent = new Intent(getActivity(), LoginActivity.class);                                Toast.makeText(getActivity(), "退出成功!", Toast.LENGTH_SHORT).show();                                startActivity(intent);                            }                        });                // 创建并显示AlertDialog                AlertDialog dialog = builder.create();                dialog.show();            }        });    }    // 获取控件    private void initView(View view) {        llBackBook = view.findViewById(R.id.ll_back_book);        llEdit = view.findViewById(R.id.ll_edit);        llModifymm = view.findViewById(R.id.ll_modifymm);    }}

对应的xml布局代码如下所示:

                                                                                                                                                                                            

  2.7 归还图书页面实现 

 我们先来看一下布局代码:

                                        

        在 setButtonClickListener 方法中,用户为 btnInquire 按钮设置了点击监听器。当点击该按钮时,用户首先获取输入框中的学号值,并判断该学号是否为空。

        如果为空,则显示一个 Toast 提示用户输入借阅者的学号;否则,调用 getBorrowInfoByBorrowerId 方法来根据学号查询借阅信息列表。

        如果查询结果为空,显示一个 Toast 提示用户未找到相关借阅信息,并清空搜索框;如果查询结果不为空,则将查询结果设置到 ListView 控件中,并清空搜索框。

        在 getBorrowInfoByBorrowerId 方法中,用户创建了一个 BookHelper 对象,并调用其 getBorrowInfoByBorrowerId 方法来获取借阅信息列表。该方法接受一个借阅者学号作为参数,并返回一个借阅信息列表。

        在 setListViewAdapter 方法中,用户首先创建了一个 BackBookAdapter 对象,并将借阅信息列表作为参数传递给它。然后,将适配器设置给 ListView 控件,以显示借阅信息列表。

        在 initView 方法中,用户使用 findViewById 方法获取了 EditText、Button、ListView 和 ImageView 控件的实例,并将它们保存在相应的变量中。

package com.example.booklendingsystem.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ListView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.example.booklendingsystem.Adapter.BackBookAdapter;import com.example.booklendingsystem.Bean.BorrowInfo;import com.example.booklendingsystem.Helper.BookHelper;import com.example.booklendingsystem.R;import java.util.ArrayList;import java.util.List;public class BackBookActivity extends AppCompatActivity {    // 声明变量    private BackBookAdapter backBookAdapter;    private EditText etId;    private Button btnInquire;    private ListView lv;    private ImageView back;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_back_book);        // 初始化界面        initView();        // 设置按钮点击监听器        setButtonClickListener();        // 返回        back();    }    // 返回    private void back() {        back.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                finish();            }        });    }    private void setButtonClickListener() {        btnInquire.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 获取输入框中的id值                String id = etId.getText().toString().trim();                // 判断输入框中的id是否为空                if (id.isEmpty()) {                    // 若输入框中的id为空,提示Toast                    Toast.makeText(BackBookActivity.this, "请输入借阅者的学号!", Toast.LENGTH_SHORT).show();                } else {                                    // 判断查询结果是否为空                    if (borrowInfoList.isEmpty()) {                        // 若查询结果为空,提示Toast                        Toast.makeText(BackBookActivity.this, "未找到相关借阅信息", Toast.LENGTH_SHORT).show();                        // 清空搜索框                        etId.setText("");                    } else {                      // 清空搜索框                        etId.setText("");                    }                }            }        });    }        // 设置ListView控件的适配器    private void setListViewAdapter(List borrowInfoList) {              lv.setAdapter(backBookAdapter);    }    // 获取控件    private void initView() {        etId = findViewById(R.id.et_id);        btnInquire = findViewById(R.id.btn_inquire);        lv = findViewById(R.id.lv);        back = findViewById(R.id.back);    }}

        到此为止,我们的项目就已经完成了! 

三、获取源码

关注公众号《编程乐学》

后台回复:24012101

快捷获取方式

上一篇:服务器配置怎么填写?

下一篇:cf服务器怎么炸?