➜ AddItem
AddItem() Agregar Productos al Carrito en Android con SQLite y Kotlin | En esta lección aprenderás a implementar la funcionalidad para agregar productos al carrito en una aplicación Android, utilizando SQLite como base de datos local y Kotlin como lenguaje de programación. Configurarás un botón en el RecyclerView que permitirá a los usuarios añadir productos,
En esta lección aprenderás a implementar la funcionalidad para agregar productos al carrito en una aplicación Android, utilizando SQLite como base de datos local y Kotlin como lenguaje de programación. Configurarás un botón en el RecyclerView
que permitirá a los usuarios añadir productos, y gestionarás la inserción de los datos en la base de datos. Además, veremos cómo mostrar un mensaje de confirmación con Toast
y cómo mejorar la experiencia de usuario verificando si el producto ya existe en el carrito.
la función addItem() que tienes se encarga de añadir un producto al carrito, representado por la tabla TABLE_CART_NAME en la base de datos SQLite. A continuación te explico cada parte del código y qué realiza:
Desglose de la función addItem():
kotlin
fun addItem(cart: Cart) {
val values = ContentValues()
values.put("_id", cart.id)
values.put("name", cart.name)
values.put("price", cart.price)
values.put("quantity", cart.quantity)
values.put("unit", cart.unit)
values.put("image", cart.image)
val _DB = this.writableDatabase
_DB.insert(TABLE_CART_NAME, null, values)
_DB.close()
}
Explicación:
-
fun addItem(cart: Cart)
: Esta función recibe un objetoCart
, que contiene la información de un producto que se va a añadir al carrito. -
val values = ContentValues()
: Crea una instancia deContentValues
, que es un contenedor utilizado para almacenar pares clave-valor. Este objeto se pasa al método de inserción en la base de datos. -
values.put(...)
: Aquí es donde introduces los datos que quieres guardar en la tablaTABLE_CART_NAME
. Cada campo de la tabla se mapea con los valores del objetoCart
:"_id"
: El identificador del producto en el carrito."name"
: El nombre del producto."price"
: El precio del producto."quantity"
: La cantidad de productos añadidos."unit"
: La unidad de medida del producto (por ejemplo, kg, litros, etc.)."image"
: El campo que almacena la URL o la ruta de la imagen del producto.
-
val _DB = this.writableDatabase
: Se obtiene una instancia de la base de datos en modo escritura, ya que estamos añadiendo nuevos datos. -
_DB.insert(TABLE_CART_NAME, null, values)
: Este método inserta los valores contenidos envalues
en la tabla definida porTABLE_CART_NAME
. El segundo parámetro, que se establece ennull
, se usa cuando no deseas especificar un valor en la segunda columna de tu tabla (si todas tus columnas tienen valores, esto se mantiene comonull
). -
_DB.close()
: Después de realizar la inserción, cierras la conexión con la base de datos para liberar recursos.
El botón para agregar un producto al carrito en el RecyclerView
tiene un enfoque correcto. Estás llamando al método addItem()
de la base de datos cuando el usuario hace clic en el botón de agregar, y luego mostrando un mensaje Toast
para confirmar que el producto ha sido añadido al carrito.
Explicación del código:
kotlin
holder.rvBtnAdd.setOnClickListener {
dBmanager.addItem(
Cart(
product.id,
product.name,
product.price,
1, // Cantidad inicial del producto
product.unit,
product.image
)
)
Toast.makeText(context, "Producto " + product.name, Toast.LENGTH_LONG).show()
}
Puntos clave:
-
holder.rvBtnAdd.setOnClickListener { ... }
: Aquí defines lo que sucede cuando el usuario hace clic en el botón "Agregar". El código dentro delsetOnClickListener
se ejecuta cuando ocurre el clic. -
dBmanager.addItem()
: Estás llamando al métodoaddItem()
que definiste previamente para agregar el producto al carrito en la base de datos SQLite. Pasas una nueva instancia del objetoCart
con los datos del producto (product.id
,product.name
, etc.) y estableces la cantidad inicial del producto a1
. -
Toast.makeText()
: Después de agregar el producto al carrito, muestras un mensaje de tipoToast
que le dice al usuario que el producto ha sido añadido correctamente. Este mensaje dura un tiempo determinado (en este casoToast.LENGTH_LONG
).
491 visitas
Capítulo 14 – ListItems »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar