Sistema de gestión de Android

1. Introducción del proyecto

Este proyecto es un sistema de gestión de empleados diseñado para conectarse a la base de datos en la nube MySQL, basado en el lenguaje java.
Enlace del proyecto GitHub: sistema de gestión de archivos de empleados de Android

2. Función de inicio de sesión y registro

1. Función de registro de inicio de sesión Tabla de información de usuario de MySQL

nombre de la columna nombre de usuario contraseña
tipo varchar varchar
longitud 10 10

2. Enlace
Para obtener una introducción a las funciones de inicio de sesión y registro, consulte mi blog anterior: Enlace: Android implementa la función de inicio de sesión y registro
3. Introducción
Para usar la función de inicio de sesión y registro normalmente, debe modificar este código en JDBCUtils. java después de descargar el código fuente:

//要连接MySQL数据库的URL    URL_MySQL="jdbc:mysql://外网地址:端口/数据库名称"
    public static final String URL_MySQL="jdbc:mysql://外网地址:端口/数据库名称";
    //要连接MySQL数据库的用户名  NAME_MySQL="MySQL用户名"
    public static final String NAME_MySQL="MySQL用户名";
    //要连接MySQL数据库的密码    PASSWORD_MySQL="MySQL密码"
    public static final String PASSWORD_MySQL="MySQL密码";

"jdbc:mysql://dirección de red externa: puerto/nombre de la base de datos", "nombre de usuario de MySQL" y "contraseña de MySQL" deben cambiarse por los suyos propios.

3. Función de gestión de la información de los empleados

Visualización de la página de inicio:
principal.png
Haga clic para agregar, eliminar, modificar, consultar Botón Botón para usar Intent para saltar a la página.
El código principal es el siguiente:
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View v )
{ if(v.getId ()==R.id.button_add) { Intent intent=new Intent(this,AddActivity.class); startActivity(intent); } if(v.getId()==R.id. button_query) { Intent Intent=new Intent(this,QueryActivity.class); startActivity(intent); } if(v.getId()==R.id.button_delete) { Intent Intent=new Intent(this,DeleteActivity.class) ; startActivity(intención); } if(v.getId()==R.id.button_modify) {

















Intent intent=new Intent(this,ModifyActivity.class);
iniciarActividad(intención);
}
}

El código de diseño es el siguiente:
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ADD8E6"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/img"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical"
        android:gravity="bottom">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="职工档案管理系统"
                android:textSize="25sp"
                android:textStyle="bold"
                android:background="@drawable/shape_rectangle_textview"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"/>
        </LinearLayout>
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">
        </TextView>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <Button
                android:id="@+id/button_add"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="添加"/>
            <Button
                android:id="@+id/button_delete"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="删除"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <Button
                android:id="@+id/button_modify"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="修改"/>
            <Button
                android:id="@+id/button_query"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="查询"/>
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

1. Base de datos

1.1 Tabla de información de empleados de MySQL

nombre de la columna identificación nombre sexo departamento posición salario teléfono
tipo varchar varchar varchar varchar varchar varchar varchar
longitud 10 10 2 10 10 10 10

1.2 Visualización de la base de datos (aquí uso Tencent Cloud Database MySQL)
MySQL.png

2. Controles

1. Introducción al control

Control simple: botón de control Botón, contenido de texto TextView
Control intermedio: casilla de verificación CheckBox, cuadro de edición EditText, cuadro de diálogo de recordatorio AlertDialog
Control avanzado: vista de lista ListView, adaptador básico BaseAdapter

2. Llamada de control

1. Cuadro de diálogo de alerta AlertDialog: El cuadro de diálogo de alerta se puede llamar a través de la clase de herramienta AlertDialogUtils.java.

public class AlertDialogUtils {
    
    
    public static void AlertDialog(Context context,String message)
    {
    
    
        //弹出提醒对话框,提醒用户用户名不能为空
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("尊敬的用户");
        builder.setMessage(message);
        builder.setPositiveButton("好的",null);
        AlertDialog alertDialog=builder.create();
        alertDialog.show();
        //设计AlertDialog提醒对话框大小
        WindowManager.LayoutParams layoutParams=alertDialog.getWindow().getAttributes();
        layoutParams.width=700;
        layoutParams.height=565;
        alertDialog.getWindow().setAttributes(layoutParams);//设置AlertDialog的宽高
    }
}

Después de hacer clic en "Aceptar" al llamar a AlertDialog, la función de función se puede llamar en public void onClick(DialogInterface dialog, int which){}

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    
    
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
    
    
                                    }
                                });

2. La llamada de la vista de lista ListView y el adaptador básico BaseAdapter se usa para mostrar la información de todos los empleados, y se usa en la función de consulta, función de eliminación y función de modificación.

3. Diseño

Use el diseño lineal LinearLayout y el diseño relativo RelativeLayout

4. Aspectos del código

Para utilizar la función de gestión de información de empleados, "jdbc:mysql://dirección de red externa: nombre de puerto/base de datos", "nombre de usuario de MySQL" y "contraseña de MySQL" de JDBCUtils2.java, JDBCUtils3.java, JDBCUtils4.java, JDBCUtils5. java "Hazlo tuyo.

1. Clase de conexión y desconexión de la base de datos

1.1 JDBCUtils2.java se utiliza para conectarse a la base de datos en la nube de MySQL para agregar, eliminar, modificar y consultar la información de los empleados posteriormente

public class JDBCUtils2 {
    
    
    //要连接MySQL数据库的URL    URL_MySQL="jdbc:mysql://外网地址:端口/数据库名称"
    public static final String URL_MySQL="jdbc:mysql://外网地址:端口/数据库名称";
    //要连接MySQL数据库的用户名  NAME_MySQL="MySQL用户名"
    public static final String NAME_MySQL="MySQL用户名";
    //要连接MySQL数据库的密码    PASSWORD_MySQL="MySQL密码"
    public static final String PASSWORD_MySQL="MySQL密码";

    //使用PreparedStatement来执行SQL语句查询
    public static PreparedStatement preparedStatement;
    //使用Resultset接收JDBC查询语句返回的数据集对象
    public static ResultSet resultSet;
    //连接数据库
    public static Connection connection;

    public static void connect2()
    {
    
    
        //开启连接数据库
        Log.d("注意","开启连接数据库中......");
        connection=null;
        try {
    
    
            //加载驱动
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            //获取与数据库的连接
            connection= DriverManager.getConnection(URL_MySQL,NAME_MySQL,PASSWORD_MySQL);
        }catch (Exception e){
    
    
            //对异常情况进行处理
            e.printStackTrace();
        }
    }

    public static void close2()
    {
    
    
        Log.d("注意","正在关闭数据库连接......");
        try{
    
    
            if(resultSet!=null){
    
    
                resultSet.close();//关闭接收
                resultSet=null;
            }
            if(preparedStatement!=null){
    
    
                preparedStatement.close();//关闭sql语句查询
                preparedStatement=null;
            }
            if(connection!=null){
    
    
                connection.close();//关闭数据库连接
                connection=null;
            }
        }catch (Exception e){
    
    
            //对异常情况进行处理
            e.printStackTrace();
        }
    }
}

1.2 JDBCUtils3.java se utiliza para conectarse a la base de datos en la nube MySQL para obtener el número total de empleados.
La función es la siguiente:
public static int getWorkerNumber()
{ // URL para conectarse a la base de datos MySQL URL_MySQL="jdbc:mysql: //dirección de red externa: puerto/nombre de base de datos " final String URL_MySQL="jdbc:mysql://dirección de red externa: puerto/nombre de base de datos"; // Nombre de usuario para conectarse a la base de datos MySQL NAME_MySQL="nombre de usuario MySQL" final String NAME_MySQL="nombre de usuario de MySQL"; // La contraseña para conectarse a la base de datos MySQL PASSWORD_MySQL="contraseña de MySQL" final String PASSWORD_MySQL="contraseña de MySQL"; conexión=null; int count=0; probar{ // cargar el controlador Class .forName("com.mysql.jdbc.Driver") .newInstance(); //Obtener la conexión con la base de datos connection= DriverManager.getConnection(URL_MySQL,NAME_MySQL,PASSWORD_MySQL); String sql="SELECT COUNT(*) FROM worker ";














declaración=conexión.createStatement();
resultSet=sentencia.executeQuery(sql);
while (resultSet.next())
{ cuenta=resultSet.getInt(1); } }capturar (Excepción e){ e.printStackTrace(); } devuelve la cuenta; }






1.3 JDBCUtils4.java se utiliza para conectarse a la base de datos en la nube MySQL para obtener el número de empleados masculinos. La
función es la siguiente:
public static int getWorkerMan()
{ //URL para conectarse a la base de datos MySQL URL_MySQL="jdbc:mysql: //dirección de red externa: puerto/nombre de base de datos" final String URL_MySQL="jdbc:mysql://dirección de red externa: puerto/nombre de base de datos"; // Nombre de usuario para conectarse a la base de datos MySQL NAME_MySQL="nombre de usuario MySQL" final String NAME_MySQL="Nombre de usuario MySQL"; //La contraseña para conectarse a la base de datos MySQL PASSWORD_MySQL="Contraseña MySQL" final String PASSWORD_MySQL="Contraseña MySQL"; conexión=null; int count=0; probar{ //cargar el controlador Class.forName("com.mysql.jdbc.Driver" ).newInstance(); //Obtener la conexión con la base de datos connection= DriverManager.getConnection(URL_MySQL,NAME_MySQL,PASSWORD_MySQL); String sql="SELECT COUNT(*) FROM trabajador WHERE sexo = 'masculino'";














declaración=conexión.createStatement();
resultSet=sentencia.executeQuery(sql);
while (resultSet.next())
{ cuenta=resultSet.getInt(1); } }capturar (Excepción e){ e.printStackTrace(); } devuelve la cuenta; }






1.4 JDBCUtils5.java se utiliza para conectarse a la base de datos en la nube MySQL para obtener el número de empleadas.
La función es la siguiente:
public static int getWorkerWoman()
{ // URL para conectarse a la base de datos MySQL URL_MySQL="jdbc:mysql: //dirección de red externa: puerto/nombre de base de datos" final String URL_MySQL="jdbc:mysql://dirección de red externa: puerto/nombre de base de datos"; // Nombre de usuario para conectarse a la base de datos MySQL NAME_MySQL="nombre de usuario MySQL" final String NAME_MySQL="Nombre de usuario MySQL"; //La contraseña para conectarse a la base de datos MySQL PASSWORD_MySQL="Contraseña MySQL" final String PASSWORD_MySQL="Contraseña MySQL"; conexión=null; int count=0; probar{ //cargar el controlador Class.forName("com.mysql.jdbc.Driver" ).newInstance(); //Obtener la conexión con la base de datos connection= DriverManager.getConnection(URL_MySQL,NAME_MySQL,PASSWORD_MySQL); String sql="SELECT COUNT(*) FROM trabajador WHERE sexo = 'femenino'";














declaración=conexión.createStatement();
resultSet=sentencia.executeQuery(sql);
while (resultSet.next())
{ cuenta=resultSet.getInt(1); } }capturar (Excepción e){ e.printStackTrace(); } devuelve la cuenta; }






2. Información del empleado

Trabajador.java

public class Worker implements Serializable {
    
    
    private String id;//职工编号
    private String name;//职工姓名
    private String sex;//职工性别
    private String department;//职工所在部门
    private String position;//职工职位
    private String salary;//职工工资
    private String phone;//职工电话

    public Worker(){
    
    }

    public Worker(String id,String name,String sex,String department,String position,String salary,String phone)
    {
    
    
        this.id=id;
        this.name=name;
        this.sex=sex;
        this.department=department;
        this.position=position;
        this.salary=salary;
        this.phone=phone;
    }

    public String getId() {
    
    
        return id;
    }

    public String getName() {
    
    
        return name;
    }

    public String getSex() {
    
    
        return sex;
    }

    public String getDepartment() {
    
    
        return department;
    }

    public String getPosition() {
    
    
        return position;
    }

    public String getSalary() {
    
    
        return salary;
    }

    public String getPhone() {
    
    
        return phone;
    }

    public void setId(String id) {
    
    
        this.id = id;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public void setSex(String sex) {
    
    
        this.sex = sex;
    }

    public void setDepartment(String department) {
    
    
        this.department = department;
    }

    public void setPosition(String position) {
    
    
        this.position = position;
    }

    public void setSalary(String salary) {
    
    
        this.salary = salary;
    }

    public void setPhone(String phone) {
    
    
        this.phone = phone;
    }
}

3. Clase de operación de datos de usuario

WorkerDao.java

public class WorkerDao extends JDBCUtils2{
    
    
    public Worker findID(String id)
    {
    
    
        connect2();//获得连接
        Worker worker=null;
        try{
    
    
            //处理sql语句。我这里是根据我自己的worker表的id字段来查询记录
            String sql="select * from worker where id=?";
            //获得预处理对象。获取用于向数据库发送sql语句的preparedStatement
            preparedStatement=connection.prepareStatement(sql);
            //设置实际参数。用于根据编号进行查询
            preparedStatement.setString(1,id);
            //执行。执行sql查询语句并返回结果集
            resultSet= preparedStatement.executeQuery();
            //如果当前记录不是结果集中的最后一行,则进入循环体。
            while (resultSet.next())
            {
    
    
                worker=new Worker();
                //获取id列列值
                worker.setId(resultSet.getString("id"));
            }
        }catch (Exception e){
    
    
            //对异常情况进行处理
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return worker;
    }
    public int addWorker(Worker worker)
    {
    
    
        int value=0;
        connect2();
        try {
    
    
            //处理sql语句。我这里是向我自己worker表的id,name,sex,department,position,salary,phone添加数据
            String sql="insert into worker(id,name,sex,department,position,salary,phone) values(?,?,?,?,?,?,?)";
            preparedStatement=connection.prepareStatement(sql);
            //设置实际参数。将数据插入数据库中
            preparedStatement.setString(1, worker.getId());//设置编号
            preparedStatement.setString(2, worker.getName());//设置姓名
            preparedStatement.setString(3, worker.getSex());//设置性别
            preparedStatement.setString(4, worker.getDepartment());//设置部门
            preparedStatement.setString(5, worker.getPosition());//设置职位
            preparedStatement.setString(6, worker.getSalary());//设置工资
            preparedStatement.setString(7, worker.getPhone());//设置电话号码
            value=preparedStatement.executeUpdate();
        }catch (Exception e){
    
    
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return value;
    }
    public List<Worker> findWorkerList()
    {
    
    
        List<Worker> list=new ArrayList<>();
        connect2();
        try{
    
    
            String sql="select * from worker";
            preparedStatement=connection.prepareStatement(sql);
            resultSet=preparedStatement.executeQuery();
            while (resultSet.next())
            {
    
    
                Worker worker=new Worker();
                worker.setId(resultSet.getString("id"));
                worker.setName(resultSet.getString("name"));
                worker.setSex(resultSet.getString("sex"));
                worker.setDepartment(resultSet.getString("department"));
                worker.setPosition(resultSet.getString("position"));
                worker.setSalary(resultSet.getString("salary"));
                worker.setPhone(resultSet.getString("phone"));
                list.add(worker);
            }
        }catch (Exception e){
    
    
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return list;
    }
    public int deleteWorker(String id)
    {
    
    
        int value=0;
        try {
    
    
            connect2();
            String sql="delete from worker where id=?";
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,id);
            value=preparedStatement.executeUpdate();
        }catch (Exception e){
    
    
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return value;
    }
    public int modifyWorker(Worker worker)
    {
    
    
        int value=0;
        connect2();
        try {
    
    
            String sql="update worker set name=?,sex=?,department=?,position=?,salary=?,phone=? where id=?";
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,worker.getName());
            preparedStatement.setString(2,worker.getSex());
            preparedStatement.setString(3,worker.getDepartment());
            preparedStatement.setString(4,worker.getPosition());
            preparedStatement.setString(5,worker.getSalary());
            preparedStatement.setString(6,worker.getPhone());
            preparedStatement.setString(7,worker.getId());
            value=preparedStatement.executeUpdate();
        }catch (Exception e){
    
    
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return value;
    }
    public Worker findID2(String id)
    {
    
    
        connect2();//获得连接
        Worker worker=null;
        try{
    
    
            //处理sql语句。我这里是根据我自己的worker表的id字段来查询记录
            String sql="select * from worker where id=?";
            //获得预处理对象。获取用于向数据库发送sql语句的preparedStatement
            preparedStatement=connection.prepareStatement(sql);
            //设置实际参数。用于根据编号进行查询
            preparedStatement.setString(1,id);
            //执行。执行sql查询语句并返回结果集
            resultSet= preparedStatement.executeQuery();
            //如果当前记录不是结果集中的最后一行,则进入循环体。
            while (resultSet.next())
            {
    
    
                String name=resultSet.getString("name");
                String sex=resultSet.getString("sex");
                String department=resultSet.getString("department");
                String position=resultSet.getString("position");
                String salary=resultSet.getString("salary");
                String phone=resultSet.getString("phone");
                worker=new Worker(id,name,sex,department,position,salary,phone);
            }
        }catch (Exception e){
    
    
            //对异常情况进行处理
            e.printStackTrace();
        }finally {
    
    
            close2();
        }return worker;
    }
}

4. Agregar función

añadir.png
AddActivity.java

public void add()
    {
    
    
        final String id=editText_worker_id.getText().toString().trim();
        final String name=editText_worker_name.getText().toString().trim();
        final String sex=editText_worker_sex.getText().toString().trim();
        final String department=editText_worker_department.getText().toString().trim();
        final String position=editText_worker_position.getText().toString().trim();
        final String salary=editText_worker_salary.getText().toString().trim();
        final String phone=editText_worker_phone.getText().toString().trim();
        if(TextUtils.isEmpty(id))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入编号!");
            editText_worker_id.requestFocus();
            return;
        }else if (TextUtils.isEmpty(name))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入姓名!");
            editText_worker_name.requestFocus();
            return;
        }else if (TextUtils.isEmpty(sex))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入性别!");
            editText_worker_sex.requestFocus();
            return;
        }else if (TextUtils.isEmpty(department))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入部门!");
            editText_worker_department.requestFocus();
            return;
        }else if (TextUtils.isEmpty(position))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入职位!");
            editText_worker_position.requestFocus();
            return;
        }else if (TextUtils.isEmpty(salary))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入工资!");
            editText_worker_salary.requestFocus();
            return;
        }else if (TextUtils.isEmpty(phone))
        {
    
    
            AlertDialogUtils.AlertDialog(AddActivity.this,"请输入电话号码!");
            editText_worker_phone.requestFocus();
            return;
        }else
        {
    
    
            final Worker worker=new Worker();
            worker.setId(id);
            worker.setName(name);
            worker.setSex(sex);
            worker.setDepartment(department);
            worker.setPosition(position);
            worker.setSalary(salary);
            worker.setPhone(phone);
            new Thread(new Runnable() {
    
    
                @Override
                public void run() {
    
    
                    final int value=workerDao.addWorker(worker);
                    if(value>0)
                    {
    
    
                        handler.post(new Runnable() {
    
    
                            @Override
                            public void run() {
    
    
                                //创建提醒对话框的建造器
                                AlertDialog.Builder builder=new AlertDialog.Builder(AddActivity.this);
                                //设计对话框标题图标
                                builder.setIcon(R.mipmap.ic_launcher);
                                //设置对话框标题文本
                                builder.setTitle("尊敬的用户");
                                //设置对话框内容文本
                                builder.setMessage("添加成功!");
                                //设置对话框的肯定按钮文本及其点击监听器
                                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    
    
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
    
    
                                        Intent intent=new Intent(AddActivity.this,MainActivity.class);
                                        startActivity(intent);
                                    }
                                });
                                AlertDialog alertDialog=builder.create();//根据建造器构建提醒对话框对象
                                alertDialog.show();//显示提醒对话框
                                //设计AlertDialog提醒对话框大小
                                WindowManager.LayoutParams layoutParams=alertDialog.getWindow().getAttributes();
                                layoutParams.width=700;
                                layoutParams.height=565;
                                alertDialog.getWindow().setAttributes(layoutParams);//设置AlertDialog的宽高
                                return;
                            }
                        });
                    }else
                    {
    
    
                        Looper.prepare();
                        AlertDialogUtils.AlertDialog(AddActivity.this,"添加失败!");
                        Looper.loop();
                    }
                }
            }).start();
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    public void onClick(View v)
    {
    
    
        if(v.getId()==R.id.button_add_return)
        {
    
    
            Intent intent=new Intent(this,MainActivity.class);
            startActivity(intent);
        }
        if(v.getId()==R.id.button_add_right)
        {
    
    
            final String id=editText_worker_id.getText().toString().trim();
            new Thread(new Runnable() {
    
    
                @Override
                public void run() {
    
    
                    final Worker worker_id=workerDao.findID(id);
                    handler.post(new Runnable() {
    
    
                        @Override
                        public void run() {
    
    
                            if (worker_id!=null)
                            {
    
    
                                //创建提醒对话框的建造器
                                AlertDialog.Builder builder=new AlertDialog.Builder(AddActivity.this);
                                //设计对话框标题图标
                                builder.setIcon(R.mipmap.ic_launcher);
                                //设置对话框标题文本
                                builder.setTitle("尊敬的用户");
                                //设置对话框内容文本
                                builder.setMessage("您所输入的职工编号已存在,请重新输入!");
                                //设置对话框的肯定按钮文本及其点击监听器
                                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    
    
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
    
    
                                        editText_worker_id.setText("");//清空编号编辑框内容
                                        editText_worker_name.setText("");//清空姓名编辑框内容
                                        editText_worker_sex.setText("");//清空性别编辑框内容
                                        editText_worker_department.setText("");//清空部门编辑框内容
                                        editText_worker_position.setText("");//清空职位编辑框内容
                                        editText_worker_salary.setText("");//清空工资编辑框内容
                                        editText_worker_phone.setText("");//清空电话编辑框内容
                                    }
                                });
                                AlertDialog alertDialog=builder.create();//根据建造器构建提醒对话框对象
                                alertDialog.show();//显示提醒对话框
                                //设计AlertDialog提醒对话框大小
                                WindowManager.LayoutParams layoutParams=alertDialog.getWindow().getAttributes();
                                layoutParams.width=700;
                                layoutParams.height=565;
                                alertDialog.getWindow().setAttributes(layoutParams);//设置AlertDialog的宽高
                                return;
                            }else
                            {
    
    
                                add();
                            }
                        }
                    });
                }
            }).start();
        }
    }

actividad_añadir.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ADD8E6"
    android:orientation="vertical"
    tools:context=".AddActivity">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="添加职工档案信息"
        android:gravity="center"
        android:textSize="25sp"
        android:textStyle="bold"
        android:background="@drawable/shape_rectangle_textview">
    </TextView>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="70dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="编号:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_id"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="姓名:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_name"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="性别:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_sex"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="1"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="部门:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_department"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="职位:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_position"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="工资:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_salary"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="电话:"
            android:gravity="center|bottom"/>
        <EditText
            android:id="@+id/editText_worker_phone"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLength="9"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <Button
            android:id="@+id/button_add_return"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:layout_margin="20dp"
            android:text="返回"/>
        <Button
            android:id="@+id/button_add_right"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:layout_margin="20dp"
            android:text="确认添加"/>
    </LinearLayout>
</LinearLayout>

5. Función de eliminación

borrar.png
WorkerBaseAdapter2

public class WorkerBaseAdapter2 extends BaseAdapter {
    
    
    private Context context;//声明一个上下文对象
    private List<Worker> workerList;//声明一个职工信息列表
    private buttonListDeleteOnClickListener buttonListDeleteOnClickListener;
    private Button button_list_delete;
    public WorkerBaseAdapter2(){
    
    }
    //职工适配器的构造方法,传入上下文与职工列表
    public WorkerBaseAdapter2(Context context,List<Worker> workerList)
    {
    
    
        this.context=context;
        this.workerList=workerList;
    }

    public void setWorkerList(List<Worker> workerList) {
    
    
        this.workerList = workerList;
    }

    public void setButtonListDeleteOnClickListener(buttonListDeleteOnClickListener buttonListDeleteOnClickListener) {
    
    
        this.buttonListDeleteOnClickListener = buttonListDeleteOnClickListener;
    }

    //获取列表项的个数
    @Override
    public int getCount() {
    
    
        return workerList.size();
    }

    //获取列表项的数据
    @Override
    public Object getItem(int position) {
    
    
        return workerList.get(position);
    }

    //获取列表项的编号
    @Override
    public long getItemId(int position) {
    
    
        return position;
    }

    //获取指定位置的列表视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
    
        WorkerBaseAdapter2.ViewHolder viewHolder;
        //如果转换视图为空
        if(convertView==null)
        {
    
    
            viewHolder=new WorkerBaseAdapter2.ViewHolder();//创建一个新的视图持有者
            //根据布局文件worker_listview_delete.xml生成转换视图对象
            convertView= LayoutInflater.from(context).inflate(R.layout.worker_listview_delete,null);
            viewHolder.textView_query_id2=convertView.findViewById(R.id.textview_query_id2);
            viewHolder.textView_query_name2=convertView.findViewById(R.id.textview_query_name2);
            viewHolder.textView_query_sex2=convertView.findViewById(R.id.textview_query_sex2);
            viewHolder.textView_query_department2=convertView.findViewById(R.id.textview_query_department2);
            viewHolder.textView_query_position2=convertView.findViewById(R.id.textview_query_position2);
            viewHolder.textView_query_salary2=convertView.findViewById(R.id.textview_query_salary2);
            viewHolder.textView_query_phone2=convertView.findViewById(R.id.textview_query_phone2);
            viewHolder.button_list_delete=convertView.findViewById(R.id.button_list_delete);
            convertView.setTag(viewHolder);//将视图持有者保存到转换视图当中
        }else
        {
    
    
            //如果转换视图非空,则从转换视图中获取之前保存的视图持有者
            viewHolder=(WorkerBaseAdapter2.ViewHolder) convertView.getTag();
        }
        Worker worker=workerList.get(position);
        viewHolder.textView_query_id2.setText(worker.getId());//显示职工编号
        viewHolder.textView_query_name2.setText(worker.getName());//显示职工姓名
        viewHolder.textView_query_sex2.setText(worker.getSex());//显示职工性别
        viewHolder.textView_query_department2.setText(worker.getDepartment());//显示职工部门
        viewHolder.textView_query_position2.setText(worker.getPosition());//显示职工职位
        viewHolder.textView_query_salary2.setText(worker.getSalary());//显示职工工资
        viewHolder.textView_query_phone2.setText(worker.getPhone());//显示职工电话
        viewHolder.button_list_delete.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                buttonListDeleteOnClickListener.buttonListDeleteOnClickListener(v,position);
            }
        });
        return convertView;
    }
    //定义一个视图持有者,以便重用列表项的视图资源
    public final class ViewHolder
    {
    
    
        public TextView textView_query_id2;//声明职工编号的文本视图对象
        public TextView textView_query_name2;//声明职工姓名的文本视图对象
        public TextView textView_query_sex2;//声明职工性别的文本视图对象
        public TextView textView_query_department2;//声明职工部门的文本视图对象
        public TextView textView_query_position2;//声明职工职位的文本视图对象
        public TextView textView_query_salary2;//声明职工工资的文本视图对象
        public TextView textView_query_phone2;//声明职工电话的文本视图对象
        private Button button_list_delete;//声明删除职工按钮
    }
}

EliminarActividad.java

public void delete()
    {
    
    
        final String id=editText_delete_by_id.getText().toString().trim();
        if(TextUtils.isEmpty(id))
        {
    
    
            AlertDialogUtils.AlertDialog(DeleteActivity.this,"请输入编号!");
            editText_delete_by_id.requestFocus();
            return;
        }else
        {
    
    
            new Thread(new Runnable() {
    
    
                @Override
                public void run() {
    
    
                    final int value=workerDao.deleteWorker(id);
                    if(value>0)
                    {
    
    
                        handler.post(new Runnable() {
    
    
                            @Override
                            public void run() {
    
    
                                //创建提醒对话框的建造器
                                AlertDialog.Builder builder=new AlertDialog.Builder(DeleteActivity.this);
                                //设计对话框标题图标
                                builder.setIcon(R.mipmap.ic_launcher);
                                //设置对话框标题文本
                                builder.setTitle("尊敬的用户");
                                //设置对话框内容文本
                                builder.setMessage("删除成功!");
                                //设置对话框的肯定按钮文本及其点击监听器
                                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    
    
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
    
    
                                        new Thread(new Runnable() {
    
    
                                            @Override
                                            public void run() {
    
    
                                                workerList=workerDao.findWorkerList();
                                                handler.post(new Runnable() {
    
    
                                                    @Override
                                                    public void run() {
    
    
                                                        if(workerBaseAdapter2==null)
                                                        {
    
    
                                                            workerBaseAdapter2=new WorkerBaseAdapter2(DeleteActivity.this,workerList);
                                                            listView_all_worker2.setAdapter(workerBaseAdapter2);
                                                        }else
                                                        {
    
    
                                                            workerBaseAdapter2.setWorkerList(workerList);
                                                            workerBaseAdapter2.notifyDataSetChanged();
                                                        }
                                                    }
                                                });
                                            }
                                        }).start();
                                    }
                                });
                                AlertDialog alertDialog=builder.create();//根据建造器构建提醒对话框对象
                                alertDialog.show();//显示提醒对话框
                                //设计AlertDialog提醒对话框大小
                                WindowManager.LayoutParams layoutParams=alertDialog.getWindow().getAttributes();
                                layoutParams.width=700;
                                layoutParams.height=565;
                                alertDialog.getWindow().setAttributes(layoutParams);//设置AlertDialog的宽高
                                return;
                            }
                        });
                    }else
                    {
    
    
                        Looper.prepare();
                        AlertDialogUtils.AlertDialog(DeleteActivity.this,"删除失败!该职工编号不存在!请重新输入");
                        Looper.loop();
                    }
                }
            }).start();
        }
    }
    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    public void onClick(View v)
    {
    
    
        if(v.getId()==R.id.button_delete_return)
        {
    
    
            Intent intent=new Intent(this,MainActivity.class);
            startActivity(intent);
        }
        if(v.getId()==R.id.button_delete_by_id)
        {
    
    
            delete();
            editText_delete_by_id.setText("");
        }
    }

nuevo subproceso (nuevo Runnable () { @Override public void run () { lista de trabajadores = workerDao.findWorkerList (); handler.post (nuevo Runnable () { @Override public void run () { if (workerBaseAdapter2






null)
{ adaptadorBaseTrabajador2=nuevo AdaptadorBaseTrabajador2(DeleteActivity.this,workerList); listView_all_worker2.setAdapter(workerBaseAdapter2); }else { adaptadorBaseTrabajador2.setWorkerList(listadetrabajadores); adaptadorBaseTrabajador2.notifyDataSetChanged(); } adaptadorBaseTrabajador2.setButtonListDeleteOnClickListener(new buttonListDeleteOnClickListener() { @ Anular public void buttonListDeleteOnClickListener(View view, int position) { final Worker worker=workerList.get(position); //Crear el constructor del cuadro de diálogo de recordatorio AlertDialog.Builder builder=new AlertDialog.Builder(DeleteActivity.this); // Icono de título del cuadro de diálogo de diseño builder.setIcon(R.mipmap.ic_launcher); //Establecer el texto del título del cuadro de diálogo
















builder.setTitle("Estimado usuario");
//Establezca el texto del cuadro de diálogo
builder.setMessage("¿Está seguro de que desea eliminar al empleado cuyo número de empleado es "+worker.getId()+"?"); //
Establecer el cuadro de diálogo Texto del botón positivo del cuadro y su oyente de clics
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { new Thread(new Runnable() { @Override public void run() { final int value=workerDao.deleteWorker(worker.getId()); handler.post(new Runnable() { @Override public void run() { new Thread(new Runnable() { @ Anular public void run( ) { workerList=workerDao.findWorkerList(); handler.post(new Runnable() {














@Override
public void run() { if(workerBaseAdapter2
null)
{ adaptadorBaseTrabajador2 = Nuevo AdaptadorBaseTrabajador2 (deleteActivity.this, listatrabajadores); listView_all_Worker2.Setadapter (adaptadorBasetrabajador2); } Els E { adaptadorBasetrabajador2.setworkerList (listatrabajadores); adaptadorBaseTrabajador2.notifyDataSetchanged (); } } ); } ). Start (); } }); } }).start(); } }); builder.setNegativeButton("Cancel", null); AlertDialog alertDialog=builder.create();//Construir el objeto de diálogo de alerta alertDialog.show según el constructor ();//Mostrar el cuadro de diálogo de alerta //Diseñe el tamaño del cuadro de diálogo de alerta AlertDialog WindowManager.LayoutParams layoutParams=alertDialog.getWindow().getAttributes();






















layoutParams.width=700;
layoutParams.height=565;
alertDialog.getWindow().setAttributes(layoutParams);//Establecer el ancho y alto de AlertDialog
}
});
}
});
}
}).start();

worker_listview_delete.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textColor="#000000"
                android:textStyle="bold"
                android:text="编号:"/>
            <TextView
                android:id="@+id/textview_query_id2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textColor="#000000"
                android:textStyle="bold"
                android:gravity="left"/>
        </LinearLayout>
        <Button
            android:id="@+id/button_list_delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="删除"
            android:backgroundTint="#FF0000">
        </Button>
    </RelativeLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="姓名:"/>
        <TextView
            android:id="@+id/textview_query_name2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="性别:"/>
        <TextView
            android:id="@+id/textview_query_sex2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="部门:"/>
        <TextView
            android:id="@+id/textview_query_department2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="职位:"/>
        <TextView
            android:id="@+id/textview_query_position2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="工资:"/>
        <TextView
            android:id="@+id/textview_query_salary2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:text="电话:"/>
        <TextView
            android:id="@+id/textview_query_phone2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_weight="1"
            android:gravity="left"/>
    </LinearLayout>
</LinearLayout>

activivty_delete.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".DeleteActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="#66BB">
        <Button
            android:id="@+id/button_delete_return"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="返回"/>
        <EditText
            android:id="@+id/editText_delete_by_id"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:maxLength="9"
            android:hint="请输入要删除职工的编号"
            android:textColorHint="#999999"
            android:background="@drawable/shape_round_rectangle"/>
        <Button
            android:id="@+id/button_delete_by_id"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="删除"/>
    </LinearLayout>
    <ListView
        android:id="@+id/listView_all_worker2"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ListView>
</LinearLayout>

6. Función de modificación

modificar.png

7. Función de consulta

consulta.png
Por razones de espacio, no mostraré más

Supongo que te gusta

Origin blog.csdn.net/m0_69101244/article/details/130792062
Recomendado
Clasificación