Curso Carrito de Compra en Kotlin - Api Laravel
DecreaseItem Disminuir la Cantidad de un Producto en el Carrito de Compras
En esta lección, aprenderás a implementar la funcionalidad para disminuir la cantidad de un producto en el carrito de compras de una aplicación Android. Veremos cómo gestionar la disminución de cantidad y cómo eliminar un producto del carrito si su cantidad llega a cero.
En esta lección, nos enfocaremos en la implementación de la funcionalidad para que los usuarios puedan disminuir la cantidad de un producto en su carrito de compras. Si la cantidad de un producto llega a cero tras la disminución, también eliminaremos ese producto del carrito.
Para permitir que los usuarios disminuyan la cantidad de un producto, vamos a agregar un botón de disminución en la vista de cada producto en el carrito. Al hacer clic en este botón, se ejecutará el siguiente código en el OnClickListener
:
kotlin
btnDecrease?.setOnClickListener { dBmanager.updateQuantity(id!!, cantidad!! - 1) // Actualiza la cantidad if (cantidad - 1 == 0) { dBmanager.deleteItem(id) // Elimina el producto si la cantidad llega a cero } val cursor = dBmanager.getCart() // Obtiene el cursor actualizado cursor!!.moveToFirst() // Mueve el cursor al primer elemento adapter.changeCursor(cursor) // Cambia el cursor en el adaptador para actualizar la vista }
Dentro del OnClickListener
, se llama a updateQuantity()
de la clase DBmanager
para disminuir la cantidad del producto. Utilizamos cantidad!! - 1
para restar uno de la cantidad actual. Este método se encarga de actualizar la base de datos con la nueva cantidad.
Después de actualizar la cantidad, se verifica si la nueva cantidad es cero. Si es así, se llama a deleteItem(id)
para eliminar el producto del carrito. Esto asegura que no queden productos con cantidad cero en la base de datos.
kotlin
if (cantidad - 1 == 0) {
dBmanager.deleteItem(id) // Elimina el producto si la cantidad llega a cero
}
Finalmente, obtenemos un nuevo cursor de la base de datos con dBmanager.getCart()
y lo asignamos al adaptador usando adapter.changeCursor(cursor)
. Esto actualizará la interfaz para reflejar la cantidad actualizada de productos en el carrito.
Es recomendable incluir verificaciones de errores para asegurarse de que la cantidad no se convierta en un número negativo antes de realizar la actualización. Esto se puede manejar fácilmente con una condición:
kotlin
if (cantidad > 1) {
dBmanager.updateQuantity(id!!, cantidad!! - 1)
} else {
dBmanager.deleteItem(id)
}
Con esta implementación, los usuarios pueden disminuir la cantidad de un producto en su carrito de compras y eliminar el producto si la cantidad se reduce a cero. Esta funcionalidad mejora la experiencia del usuario y asegura que el carrito siempre refleje el estado actual de los productos seleccionados.
224 visitas
« Capítulo 15 – IncreaseItem - Incrementar en uno un item
Capítulo 17 – RemoveItem - Remover un item »
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2025