Tesis 1.0.0
Loading...
Searching...
No Matches
CarritoAdapter.java
Go to the documentation of this file.
1package com.example.food_front.adapters;
2
3import android.view.LayoutInflater;
4import android.view.View;
5import android.view.ViewGroup;
6import android.widget.Button;
7import android.widget.ImageView;
8import android.widget.TextView;
9import android.widget.Toast;
10
11import androidx.annotation.NonNull;
12import androidx.recyclerview.widget.RecyclerView;
13
14import com.bumptech.glide.Glide;
15import com.example.food_front.R;
16import com.example.food_front.models.Carrito;
17import com.example.food_front.models.Producto;
18
19import java.util.List;
20
21public class CarritoAdapter extends RecyclerView.Adapter<CarritoAdapter.CarritoViewHolder> {
22
23 // Lista de carritos
24 private List<Carrito> listaCarritos;
25
26 // Interfaz para manejar clics en el botón de sumar cantidad
27 public interface OnClickListener {
28 void onDeleteClick(Carrito carrito);
29 void onAddClick(Carrito carrito);
30 void onMinusClick(Carrito carrito);
31 }
32
33 // Listener que será implementado en el Fragment o Activity
34 private CarritoAdapter.OnClickListener listener;
35
36 // Constructor que recibe la lista de productos y el listener
37 public CarritoAdapter(List<Carrito> listaCarritos, CarritoAdapter.OnClickListener listener) {
38 this.listaCarritos = listaCarritos;
39 this.listener = listener;
40 }
41
42
43 @NonNull
44 @Override
45 // Infla el layout para cada ítem de la lista (crea la vista)
46 public CarritoAdapter.CarritoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
47 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_carrito, parent, false);
48 return new CarritoAdapter.CarritoViewHolder(view);
49 }
50
51 @Override
52 public void onBindViewHolder(@NonNull CarritoAdapter.CarritoViewHolder holder, int position) {
53 // Obtener el producto actual
54 Carrito carrito = listaCarritos.get(position);
55
56 // Asignar los valores a las vistas
57 holder.textViewProducto.setText(carrito.getProducto());
58 holder.textViewPrecio.setText("$" + carrito.getPrecio());
59 holder.textCantidad.setText(String.valueOf(carrito.getCantidad()));
60
61 // Cargar la imagen con Glide
62 String imageUrl = carrito.getImagenUrl();
63 if (imageUrl != null) {
64 Glide.with(holder.itemView.getContext())
65 .load(imageUrl)
66 .placeholder(R.drawable.placeholder) // Imagen por defecto mientras se carga
67 .error(R.drawable.error_image) // Imagen de error si no se carga
68 .into(holder.imageViewProducto); // Cargar en imageViewProducto
69 } else {
70 holder.imageViewProducto.setImageResource(R.drawable.placeholder); // Imagen predeterminada si no hay URL
71 }
72
73// Configurar el clic del botón de "Agregar al Carrito"
74 holder.buttonBorrarCarrito.setOnClickListener(new View.OnClickListener() {
75 @Override
76 public void onClick(View v) {
77 // Llamar al listener para manejar el clic
78 if (listener != null) {
79 listener.onDeleteClick(carrito);
80 }
81 }
82 });
83
84// Configurar el clic del botón de "Agregar al Carrito"
85 holder.buttonAddCarrito.setOnClickListener(new View.OnClickListener() {
86 @Override
87 public void onClick(View v) {
88 // Llamar al listener para manejar el clic
89 if (listener != null) {
90 listener.onAddClick((carrito));
91 }
92 }
93 });
94
95 // Configurar el clic del botón de "Agregar al Carrito"
96 holder.buttonMinusCarrito.setOnClickListener(new View.OnClickListener() {
97 @Override
98 public void onClick(View v) {
99 // Llamar al listener para manejar el clic
100 if (listener != null) {
101 listener.onMinusClick((carrito));
102 }
103 }
104 });
105 }
106
107
108 // Devuelve el tamaño de la lista
109 @Override
110 public int getItemCount() {
111 return listaCarritos.size();
112 }
113
114 // ViewHolder que almacena las referencias a los elementos del layout de cada ítem
115 static class CarritoViewHolder extends RecyclerView.ViewHolder {
116 ImageView imageViewProducto, buttonBorrarCarrito;
117 TextView textViewProducto, textViewPrecio, textCantidad;
118 Button buttonAddCarrito, buttonMinusCarrito;
119
120
121 public CarritoViewHolder(@NonNull View itemView) {
122 super(itemView);
123 imageViewProducto = itemView.findViewById(R.id.image_producto);
124 textViewProducto = itemView.findViewById(R.id.text_nombre_producto);
125 textViewPrecio = itemView.findViewById(R.id.text_precio_producto);
126 textCantidad = itemView.findViewById(R.id.text_cantidad);
127 buttonBorrarCarrito = itemView.findViewById(R.id.image_eliminar_producto); // Inicializar el botón
128 buttonAddCarrito = itemView.findViewById(R.id.button_plus);
129 buttonMinusCarrito = itemView.findViewById(R.id.button_minus);
130 }
131 }
132
133}
void onBindViewHolder(@NonNull CarritoAdapter.CarritoViewHolder holder, int position)
CarritoAdapter(List< Carrito > listaCarritos, CarritoAdapter.OnClickListener listener)
CarritoAdapter.CarritoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)