基于Android Studio开发的人员管理系统APP

人员管理系统


前言

这是一个具有登录功能和人员信息增删改查功能的人员管理系统,在之前也有做过一个通过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开发的人员管理系统

总结

这是一个简单的课程设计项目,作为非计算机或移动开发专门的专业的小伙伴完全够用。技术是越来越多的,我们能做到的只有精益求精,不断地学习新的技术,加油。

猜你喜欢

转载自blog.csdn.net/weixin_46155589/article/details/127324961