人员管理系统
目录
人员管理系统
前言
一、系统的大概流程
二、详细开发步骤
1.登陆界面
2.中间跳转界面
3.添加用户
4.全部用户界面
5.项目下载
总结
前言
这是一个具有登录功能和人员信息增删改查功能的人员管理系统,在之前也有做过一个通过http协议与云平台对接的app,正好需要完成一个课程设计,所以就好好的补习了一下安卓开发的知识。
一、系统的大概流程
二、详细开发步骤
1.登陆界面
UI效果如图:
这个界面没有使用数据库,后期可以加上,具体代码如下:
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private EditText username;
private EditText pwd;
private Button login;
private String Tag="QQLoginActivity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
username=findViewById(R.id.user_name);
pwd=findViewById(R.id.etpwd);
login=findViewById(R.id.btnLogin);
login.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.btnLogin: //这里是登录按钮的功能实现
String userName=username.getText().toString();
String user_pwd=pwd.getText().toString();
if (TextUtils.isEmpty(userName))
{
Toast.makeText(LoginActivity.this,"用户名为空",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(user_pwd))
{
Toast.makeText(LoginActivity.this,"密码为空",Toast.LENGTH_SHORT).show();
return;
}
if(login(userName,user_pwd))
{
Toast.makeText(LoginActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(LoginActivity.this,CenterActivity.class);
startActivity(intent);
}else{
Toast.makeText(LoginActivity.this,"登录失败",Toast.LENGTH_SHORT).show();
}
break;
}
}
private boolean login(String userName,String pwd)
{
if(userName.equals("admin")&&pwd.equals("123"))
{
return true;
}else{
return false;
}
}
}
2.中间跳转界面
这个界面的设计比较简单,只有一个图片和两个图片按钮,所以不做详细介绍,具体效果如下图:
3.添加用户
这里需要用到数据库的增加语句,首选我们需要创建一个数据库,并且添加一张表。
创建一个DbOpenHelper类继承自SQLiteOpenHelper类。
重写SQLiteOpenHelper类的onCreate和onUpgrade方法。
public class DbOpenHelper extends SQLiteOpenHelper {
public DbOpenHelper(@Nullable Context context) {
super(context, "my.db3", null, 1);
}
//必须重写下面两个方法
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//当没有的时候新建一个数据库
sqLiteDatabase.execSQL("CREATE TABLE student(id integer primary key autoincrement,name varchar,age int, sex int,mz varchar,xy varchar,zy varchar,bj carchar)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
在studentdao类里实现数据库增函数:
public void insert(StudentEntity entity) {
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "insert into student(name,age,sex,mz ,xy ,zy ,bj ) values(?,?,?,?,?,?,?)";
//拼接sql时选择的是防止注入的方式
db.execSQL(sql, new String[]{entity.getName(), String.valueOf(entity.getAge()), String.valueOf(entity.getSex()),
entity.getMz(), entity.getXy(), entity.getZy(), entity.getBj()});
db.close();
}
在UI界面让用户填写相关信息再将信息存储进数据库,具体如下图:
实现代码如下:
public class AddActivity extends AppCompatActivity implements View.OnClickListener {
private RadioGroup radioGroup;
private EditText etname;
private EditText etage;
private EditText etmz;
private EditText etxy;
private EditText etzy;
private EditText etbj;
private int sex;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
etname = findViewById(R.id.etname);
etage = findViewById(R.id.etage);
etmz = findViewById(R.id.etmz);
etxy = findViewById(R.id.etxy);
etzy = findViewById(R.id.etzy);
etbj = findViewById(R.id.etbj);
radioGroup=findViewById(R.id.rg);
findViewById(R.id.btnadd).setOnClickListener(this);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (i==R.id.rgnan)
{
sex=1;
}else if (i==R.id.rgnv)
{
sex=0;
}
}
});
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnadd:
String name = etname.getText().toString();
String strage = etage.getText().toString();
String mz = etmz.getText().toString();
String xy = etxy.getText().toString();
String zy = etzy.getText().toString();
String bj = etbj.getText().toString();
if (TextUtils.isEmpty(name)) {
return;
}
if (TextUtils.isEmpty(strage)) {
return;
}
if (TextUtils.isEmpty(mz)) {
return;
}
if (TextUtils.isEmpty(xy)) {
return;
}
if (TextUtils.isEmpty(zy)) {
return;
}
if (TextUtils.isEmpty(bj)) {
return;
}
int age = Integer.parseInt(strage);
StudentEntity entity = new StudentEntity();
entity.setAge(age);
entity.setName(name);
entity.setSex(sex);
Log.i("sex", String.valueOf(sex));
entity.setMz(mz);
entity.setXy(xy);
entity.setZy(zy);
entity.setBj(bj);
new StudentDao(this).insert(entity);
Toast.makeText(AddActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
break;
}
}
}
4.全部用户界面
这里是包括了删除、修改和查询功能的,UI界面如下图:
红色框的查询按钮建议去掉,可以直接进入就显示所有信息,这里用的是一个listview显示所有信息,所以要先做好他的数据装载,这里不做仔细介绍,当然查询、修改还有删除功能需要在studentdao里继续实现这三个功能在调用。
studentdao具体代码如下:
public class StudentDao {
//负责对表增删改查
DbOpenHelper helper;
public StudentDao(Context context) {
helper = new DbOpenHelper(context);
}
//1.增
public void insert(StudentEntity entity) {
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "insert into student(name,age,sex,mz ,xy ,zy ,bj ) values(?,?,?,?,?,?,?)";
//拼接sql时选择的是防止注入的方式
db.execSQL(sql, new String[]{entity.getName(), String.valueOf(entity.getAge()), String.valueOf(entity.getSex()),
entity.getMz(), entity.getXy(), entity.getZy(), entity.getBj()});
db.close();
}
//2.删
public void delete(int id) {
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "delete from student where id=?";
//拼接sql时选择的是防止注入的方式
db.execSQL(sql, new String[]{id + ""});
db.close();
}
//3.改
public void update(StudentEntity entity) {
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "update student set name=? , age=? ,sex=?,mz=? ,xy =?,zy =?,bj=? where id=?";
//拼接sql时选择的是防止注入的方式
db.execSQL(sql, new String[]{entity.getName(), entity.getAge() + "", String.valueOf(entity.getSex()),
entity.getMz(), entity.getXy(), entity.getZy(), entity.getBj(), entity.getId() + ""});
db.close();
}
//4.1 查询单个对象
public StudentEntity get(int i) {
StudentEntity entity = null;
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "select * from student where id=?";
Cursor cursor = db.rawQuery(sql, new String[]{i + ""});
if (cursor != null) {
if (cursor.moveToNext()) {
entity = new StudentEntity();
int index = cursor.getColumnIndex("name");
String name = cursor.getString(index);
index = cursor.getColumnIndex("age");
int age = cursor.getInt(index);
index = cursor.getColumnIndex("sex");
int sex = cursor.getInt(index);
index = cursor.getColumnIndex("mz");
String mz = cursor.getString(index);
index = cursor.getColumnIndex("xy");
String xy = cursor.getString(index);
index = cursor.getColumnIndex("zy");
String zy = cursor.getString(index);
index = cursor.getColumnIndex("bj");
int bj = cursor.getInt(index);
entity.setName(name);
entity.setAge(age);
entity.setSex(sex);
entity.setMz(mz);
entity.setXy(xy);
entity.setZy(zy);
entity.setBj(String.valueOf(bj));
}
}
return entity;
}
//4.2
public List<StudentEntity> getAll() {
List<StudentEntity> list = new ArrayList<>();
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "select * from student";
Cursor cursor = db.rawQuery(sql, null);
if (cursor != null) {
while (cursor.moveToNext()) {
int index = cursor.getColumnIndex("id");
int id = cursor.getInt(index);
index = cursor.getColumnIndex("name");
String name = cursor.getString(index);
index = cursor.getColumnIndex("age");
int age = cursor.getInt(index);
StudentEntity entity = new StudentEntity();
entity.setName(name);
entity.setAge(age);
entity.setId(id);
list.add(entity);
}
cursor.close();
db.close();
}
return list;
}
}
全部用户功能实现代码如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ListView lvstudent;
private BaseAdapter adapter;
private List<StudentEntity> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvstudent = findViewById(R.id.lvstudent);
findViewById(R.id.btnselect).setOnClickListener(this);
adapter = new MyAdapter();
lvstudent.setAdapter(adapter);
}
class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v;
if (view == null) {
v = View.inflate(MainActivity.this, R.layout.list_view_item_students, null);
} else {
v = view;
}
StudentEntity entity = list.get(i);
TextView tvName = v.findViewById(R.id.tvname);
tvName.setText(entity.getName());
TextView tvage = v.findViewById(R.id.tvage);
//Log.i("id", valueOf(entity.getId()));
tvage.setText(entity.getAge() + "");
TextView tvid = v.findViewById(R.id.tvid);
//Log.i("age", valueOf(entity.getAge()));
tvid.setText(entity.getId() + "");
v.findViewById(R.id.ibdetail).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("position", "position" + i);
StudentEntity studentEntity = list.get(i);
int id = studentEntity.getId();
Intent intent = new Intent(MainActivity.this, DetailActivity.class);
intent.putExtra("", id);
MainActivity.this.startActivity(intent);
}
});
v.findViewById(R.id.ibdelete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
StudentEntity studentEntity = list.get(i);
new StudentDao(MainActivity.this).delete(studentEntity.getId());
list.remove(i);
Toast.makeText(MainActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
adapter.notifyDataSetChanged();
}
});
v.findViewById(R.id.ibmodify).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("position", "position" + i);
StudentEntity studentEntity = list.get(i);
int id = studentEntity.getId();
Intent intent = new Intent(MainActivity.this, ModifyActivity.class);
intent.putExtra("", id);
MainActivity.this.startActivity(intent);
}
});
return v;
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnselect:
List<StudentEntity> _list = new StudentDao(this).getAll();
list.clear();
list.addAll(_list);
adapter.notifyDataSetChanged();
break;
}
}
}
5.项目下载
一些具体的功能没法一一解释清楚可以,大家可以通过下方链接下载完整项目
基于Android studio开发的人员管理系统
文章来源:https://www.toymoban.com/news/detail-469919.html
总结
这是一个简单的课程设计项目,作为非计算机或移动开发专门的专业的小伙伴完全够用。技术是越来越多的,我们能做到的只有精益求精,不断地学习新的技术,加油。文章来源地址https://www.toymoban.com/news/detail-469919.html
到了这里,关于基于Android Studio开发的人员管理系统APP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!