# Android 个人大作业
# 一、要求:
题目自拟,但要求能够使用到 Activity、Service、Broadcast Receiver 等组件及文件 I/O 操作、SQLite 数据库操作、HTTP 网络连接操作、调用系统服务或其他应用等技术实现一个 Android 应用程序。(部分)
# 二、输出文档:
采用 DOC 文档的形式,输出文档内容需要包括:效果截图、实现的功能描述、关键代码。
# 四 作业内容阐述:
总:作业呈现的是一个校园图书管理 app,代码是在 GitHub 上找的(如有雷同,不胜荣幸),但是分析和理解展现是自己的(自己的分析已经注释在代码中,注释就是我分析和理解的过程)
1 效果展示:
(1)首页:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/9244fc542b47089d3c5758ea96095383.writebug)
(2)登录注册界面:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/6db3c4ee7a6e00cfc8a95de69983aafb.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/e8192f74101c850c95314bff32d2c631.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/8efabb82f9c16f36de748db8b1336811.writebug)
(3)登录,以及主界面
![](https://www.writebug.com/myres/static/uploads/2021/11/26/6ce1af71b593707dcbc89317c06f4ad1.writebug)
(4)添加记录:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/1f5340225493878e154eab4d490be8fb.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/7a3bf1f764eb33d2ef70e25b69b24a5f.writebug)
(5)更改记录:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/7a290fb21a770c3099e6516d76f758b1.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/53625eafb9cc769fb2d51a71e1b15688.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/e926a18443d663c45aa77cdac3ec6495.writebug)
(6)删除记录:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/dfb96ea2e3778aea358f8ee0c357b62f.writebug)
查看时:发现此 APP 存在空指针异常问题,如果在没有数据时查看记录,会停止运行。
(7)整个过程:(因为之前有问题,所以试了试,可能数据与上面图中的不匹配)
![](https://www.writebug.com/myres/static/uploads/2021/11/26/7a48fe25c9c7cc83885bddaabc13f417.writebug)
2 代码架构:
(1)各个界面的 activity:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/9817a72a10e12f03ca25bd5d02b61b0d.writebug)
(2)app 中的各个界面的图片以及按钮等不同的样式:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/51b791fcc76370ea5e450afc2eb0ebb9.writebug)
(3)布局文件:
![](https://www.writebug.com/myres/static/uploads/2021/11/26/f6dcca655833b75ce2b2bac55dcf9b04.writebug)
3 主要功能代码(只放一些 activity 代码,布局文件在之前的展示中也可以体现,代码也比较类似,就不细说了(就以注册界面为例)):
(1)注册界面:
activity 代码:
```java
package edu.cn.bookadminister;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class RegisterActivity extends AppCompatActivity {
private EditText et_username,et_pwd,et_pwd_sure;
private Button register;
private String userName,passWord,passWord_sure;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
init();
}
public void init() {
//获取对应控件
et_username = (EditText)findViewById(R.id.username);
et_pwd = (EditText)findViewById(R.id.pwd);
et_pwd_sure = (EditText)findViewById(R.id.pwd2);
register = (Button)findViewById(R.id.registerBtn);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getEditString();
//当输入框为空时弹出以下内容,即用户名、密码不能为空
if(TextUtils.isEmpty(userName)) {
Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
} else if(TextUtils.isEmpty(passWord)) {
Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
} else if(TextUtils.isEmpty(passWord_sure)) {
Toast.makeText(RegisterActivity.this, "请再次输入密码", Toast.LENGTH_SHORT).show();
return;
} else if(!passWord.equals(passWord_sure)) { //检验两次密码是否一样
Toast.makeText(RegisterActivity.this, "输入两次的密码不一样", Toast.LENGTH_SHORT).show();
return;
/**
*从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名
*/
} else if(isExistUserName(userName)) {
Toast.makeText(RegisterActivity.this, "此账户名已经存在", Toast.LENGTH_SHORT).show();
return;
} else {
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
//把账号、密码和账号标识保存到sp里面
/**
* 保存账号和密码到SharedPreferences中
*/
saveRegisterInfo(userName, passWord);
//注册成功后把账号传递到LoginActivity.java中(MainActivity.java)
// 返回值到loginActivity显示
Intent data = new Intent();
data.putExtra("userName", userName);
setResult(RESULT_OK, data);
//RESULT_OK为Activity系统常量,状态码为-1,
// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值
Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
startActivity(intent);
RegisterActivity.this.finish();
}
}
});
}
private void getEditString() {
userName = et_username.getText().toString().trim();
passWord = et_pwd.getText().toString().trim();
passWord_sure = et_pwd_sure.getText().toString().trim();
}
/**
* 从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名
*/
private boolean isExistUserName(String userName) {
boolean has_userName = false;
//mode_private SharedPreferences sp = getSharedPreferences( );
// "loginInfo", MODE_PRIVATE
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
//获取密码
String spPsw = sp.getString(userName, "");//传入用户名获取密码
//如果密码不为空则确实保存过这个用户名
if(!TextUtils.isEmpty(spPsw)) {
has_userName=true;
}
return has_userName;
}
/**
* 保存账号和密码到SharedPreferences中SharedPreferences
*/
private void saveRegisterInfo(String userName,String psw) {
String md5Psw = MD5Utils.md5(psw);//把密码用MD5加密
//loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
//获取编辑器, SharedPreferences.Edit
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目为使用Java实现的校园图书管理app。本项目使用了Activity、Service、Broadcast Receiver等组件及文件I/O操作、SQLite数据库操作、HTTP网络连接操作等技术实现了一个Android应用程序。
资源推荐
资源详情
资源评论
收起资源包目录
100011243-基于Java(Android)+SQLite实现的校园图书管理APP.zip (28个子文件)
campuslibrarymanageapp
LICENSE 1KB
BookAdminister.rar 34.36MB
READMEbefore.md 928B
2020年下学期Android个人大作业.docx-md
16-bcd07b3d8d1895c6b3a9b55cf6b6b295.png 3KB
18-affd17b40aeeb24bc53f09a37b4aa82b.png 4KB
19-545cda2c79265cc28930013c47dd6671.png 3KB
14-5f1f86c42ab70a153b14a00ef77cf0bb.png 7KB
13-32728dd220a069efa3fc5c0d8ba7b377.png 10KB
11-5e40c5bef4393843cd002d758bec6aca.png 186KB
8-473a463bff61018687b82229b1326198.png 3KB
15-97e2a2a04c69d42c53794fb7599a2486.png 5KB
7-ada5cb6bd332a988845d9b90481517c4.png 96KB
17-1a0f33ff21307ce7c2b6925415ad87db.png 4KB
myoutput.md.md 102KB
myoutput.md 105KB
12-5f1c4e33354a275a68c7895e81b3d833.png 3KB
3-2f38f01c48d6b6bbf50df0de980e5c3e.png 138KB
10-da79c4c629d38a61e58317d3f91552f5.png 82KB
5-74afa238fc4806be7abfc0de865d4181.png 148KB
2-e17f277904518923d289c6076dd578a4.png 209KB
6-3f97e8813983a3487fbfa97e003a0db5.png 165KB
9-30823c4cfdaf24e73e722a7d486b65c9.png 194KB
1-cb44d4b3035596b8ffd420a7a4639040.png 91KB
4-41d96ec3a02d27e6b2b0bee921b7aafc.png 140KB
完整的APP运行过程.mp4 9.6MB
2020年下学期Android个人大作业.docx 10.72MB
README.en.md 839B
README.md 43KB
共 28 条
- 1
资源评论
神仙别闹
- 粉丝: 3782
- 资源: 7469
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功