人員管理系統(tǒng)
目錄
人員管理系統(tǒng)
前言
一、系統(tǒng)的大概流程
二、詳細(xì)開發(fā)步驟
1.登陸界面
2.中間跳轉(zhuǎn)界面
3.添加用戶
4.全部用戶界面
?5.項(xiàng)目下載
總結(jié)
前言
這是一個(gè)具有登錄功能和人員信息增刪改查功能的人員管理系統(tǒng),在之前也有做過一個(gè)通過http協(xié)議與云平臺(tái)對接的app,正好需要完成一個(gè)課程設(shè)計(jì),所以就好好的補(bǔ)習(xí)了一下安卓開發(fā)的知識(shí)。
一、系統(tǒng)的大概流程
二、詳細(xì)開發(fā)步驟
1.登陸界面
UI效果如圖:
這個(gè)界面沒有使用數(shù)據(jù)庫,后期可以加上,具體代碼如下:
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: //這里是登錄按鈕的功能實(shí)現(xiàn)
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.中間跳轉(zhuǎn)界面
這個(gè)界面的設(shè)計(jì)比較簡單,只有一個(gè)圖片和兩個(gè)圖片按鈕,所以不做詳細(xì)介紹,具體效果如下圖:
3.添加用戶
這里需要用到數(shù)據(jù)庫的增加語句,首選我們需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫,并且添加一張表。
創(chuàng)建一個(gè)DbOpenHelper類繼承自SQLiteOpenHelper類。
重寫SQLiteOpenHelper類的onCreate和onUpgrade方法。
public class DbOpenHelper extends SQLiteOpenHelper {
public DbOpenHelper(@Nullable Context context) {
super(context, "my.db3", null, 1);
}
//必須重寫下面兩個(gè)方法
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//當(dāng)沒有的時(shí)候新建一個(gè)數(shù)據(jù)庫
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類里實(shí)現(xiàn)數(shù)據(jù)庫增函數(shù):
public void insert(StudentEntity entity) {
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "insert into student(name,age,sex,mz ,xy ,zy ,bj ) values(?,?,?,?,?,?,?)";
//拼接sql時(shí)選擇的是防止注入的方式
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界面讓用戶填寫相關(guān)信息再將信息存儲(chǔ)進(jìn)數(shù)據(jù)庫,具體如下圖:
實(shí)現(xiàn)代碼如下:
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界面如下圖:
紅色框的查詢按鈕建議去掉,可以直接進(jìn)入就顯示所有信息,這里用的是一個(gè)listview顯示所有信息,所以要先做好他的數(shù)據(jù)裝載,這里不做仔細(xì)介紹,當(dāng)然查詢、修改還有刪除功能需要在studentdao里繼續(xù)實(shí)現(xiàn)這三個(gè)功能在調(diào)用。
studentdao具體代碼如下:
public class StudentDao {
//負(fù)責(zé)對表增刪改查
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時(shí)選擇的是防止注入的方式
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時(shí)選擇的是防止注入的方式
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時(shí)選擇的是防止注入的方式
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 查詢單個(gè)對象
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;
}
}
?全部用戶功能實(shí)現(xiàn)代碼如下:
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.項(xiàng)目下載
一些具體的功能沒法一一解釋清楚可以,大家可以通過下方鏈接下載完整項(xiàng)目
基于Android studio開發(fā)的人員管理系統(tǒng)
?文章來源:http://www.zghlxwxcb.cn/news/detail-469919.html
總結(jié)
這是一個(gè)簡單的課程設(shè)計(jì)項(xiàng)目,作為非計(jì)算機(jī)或移動(dòng)開發(fā)專門的專業(yè)的小伙伴完全夠用。技術(shù)是越來越多的,我們能做到的只有精益求精,不斷地學(xué)習(xí)新的技術(shù),加油。文章來源地址http://www.zghlxwxcb.cn/news/detail-469919.html
到了這里,關(guān)于基于Android Studio開發(fā)的人員管理系統(tǒng)APP的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!