COMPARTE ESTE ARTÍCULO

En este artículo, vamos a explorar cómo crear una aplicación CRUD (Crear, Leer, Actualizar, Eliminar) en Android usando Kotlin y SQLite. La aplicación gestionará información sobre trabajadores, permitiendo al usuario agregar, consultar, actualizar y eliminar registros en una base de datos local.

Estructura del Proyecto

La aplicación consta de las siguientes partes principales:

  1. Actividad Principal (MainActivity): Pantalla de inicio que proporciona botones para navegar a las actividades de agregar y eliminar trabajadores.
  2. Base de Datos (BaseDeDatos): Clase que maneja las operaciones CRUD en SQLite.
  3. Clases de Actividad (CrearTrabajador, BorrarTrabajador): Cada una representa una pantalla donde el usuario puede realizar operaciones CRUD específicas.
  4. Diseño XML (activity_main.xml): Archivo XML que define la interfaz de usuario de la actividad principal.

1. Actividad Principal (MainActivity)

La clase MainActivity es el punto de entrada de la aplicación. Aquí se definen los botones para cada operación CRUD y se les asignan acciones que abren las actividades correspondientes.

package com.example.crud

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)

        // Botón para abrir la actividad de creación de trabajadores
        val crear: Button = findViewById(R.id.buttonagregar)
        crear.setOnClickListener {
            val intent = Intent(this, CrearTrabajador::class.java)
            startActivity(intent)
        }

        // Botón para abrir la actividad de eliminación de trabajadores
        val borrar: Button = findViewById(R.id.buttoneliminar)
        borrar.setOnClickListener {
            val intent = Intent(this, BorrarTrabajador::class.java)
            startActivity(intent)
        }
    }
}

En este código:

  • enableEdgeToEdge() habilita el diseño de borde a borde en Android.
  • Los botones “Agregar” y “Eliminar” se configuran con setOnClickListener para abrir las actividades CrearTrabajador y BorrarTrabajador, respectivamente.

2. Base de Datos (BaseDeDatos)

La clase BaseDeDatos extiende SQLiteOpenHelper y se encarga de las operaciones CRUD.

package com.example.crud

import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper

data class Trabajador(val id: Int = 0, val name: String, val apellido: String, val cargo: String, val salario: Double, val activo: Boolean)

class BaseDeDatos(context: Context) : SQLiteOpenHelper(context, "biblioteca.db", null, 1) {
    override fun onCreate(db: SQLiteDatabase?) {
        val crearTabla = """
            CREATE TABLE Trabajadores(
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                nombre TEXT,
                apellido TEXT,
                cargo TEXT,
                salario REAL,
                activo BOOLEAN
            )
        """
        db?.execSQL(crearTabla)
    }

    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
        db?.execSQL("DROP TABLE IF EXISTS Trabajadores")
        onCreate(db)
    }

    fun insertarTrabajador(trabajador: Trabajador): Boolean {
        val db = this.writableDatabase
        val values = ContentValues()
        values.put("nombre", trabajador.name)
        values.put("apellido", trabajador.apellido)
        values.put("cargo", trabajador.cargo)
        values.put("salario", trabajador.salario)
        values.put("activo", trabajador.activo)

        val result = db.insert("Trabajadores", null, values)
        db.close()
        return result != -1L
    }

    // Funciones para consultar, actualizar y eliminar trabajadores omitidas para brevedad...
}

En BaseDeDatos:

  • onCreate() crea la tabla Trabajadores con columnas para ID, nombre, apellido, cargo, salario y si está activo.
  • insertarTrabajador() inserta un nuevo registro en la base de datos. Retorna true si la inserción fue exitosa.

3. Clase BorrarTrabajador

La clase BorrarTrabajador es una actividad que permite al usuario eliminar un trabajador de la base de datos.

package com.example.crud

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity

class BorrarTrabajador : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_borrar_trabajador)

        val editConsultar: EditText = findViewById(R.id.editConsultar)
        val buttonBorrar: Button = findViewById(R.id.buttonconsultar)

        buttonBorrar.setOnClickListener {
            val valor = editConsultar.text.toString().toIntOrNull()
            if (valor != null) {
                val dbHelper = BaseDeDatos(this)
                val resultado = dbHelper.eliminarTrabajador(valor)
                if (resultado) {
                    Toast.makeText(this, "Trabajador eliminado correctamente", Toast.LENGTH_SHORT).show()
                    finish()
                } else {
                    Toast.makeText(this, "Error al borrar trabajador", Toast.LENGTH_SHORT).show()
                }
            } else {
                Toast.makeText(this, "Ingrese un ID válido", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

Aquí:

  • buttonBorrar tiene un setOnClickListener que obtiene el ID del trabajador desde editConsultar.
  • Llama a eliminarTrabajador(id) de BaseDeDatos y muestra un mensaje de confirmación o error con Toast.

4. Diseño de Interfaz (activity_main.xml)

En el archivo XML de la actividad principal, se definen los botones que permiten al usuario navegar entre las actividades de CRUD.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/buttonagregar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Agregar"
        app:layout_constraintBottom_toTopOf="@+id/buttoneliminar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/buttonconsultar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Consultar"
        app:layout_constraintBottom_toTopOf="@+id/buttonagregar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/buttonactualizar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Actualizar"
        app:layout_constraintBottom_toTopOf="@+id/buttonconsultar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/buttoneliminar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Eliminar"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Este archivo define cuatro botones alineados verticalmente para realizar cada operación CRUD.

Conclusión

En este artículo hemos creado una aplicación CRUD básica en Android con Kotlin, utilizando SQLite como base de datos. La aplicación permite agregar, consultar, actualizar y eliminar información de trabajadores de manera sencilla.


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO