Денежный текст и текстовые описания элементов RecyclerView. Este es mi código en el Adapter:
открытый класс ViewHolderProductos расширяет RecyclerView.ViewHolder реализует View.OnClickListener {TextView etiNombre, etiCantidad, etiSubtotal, etiPrecio;Кнопка btnEliminar;Кнопка btnAumentar;Кнопка btnDisminuir;TextView totalProductoPedido;Контекстный контекст;MainActivity m;RequestQueue requestQueue;CatalogoProductFragment vistacatalogo;
public ViewHolderProductos(View itemView) {
super(itemView);
context = itemView.getContext();
m = new MainActivity();
etiNombre = (TextView) itemView.findViewById(R.id.nombreProductoPedido);
etiPrecio = (TextView) itemView.findViewById(R.id.precioProductoPedido);
etiCantidad = (TextView) itemView.findViewById(R.id.cantidadProductoPedido);
etiSubtotal = (TextView) itemView.findViewById(R.id.subtotalProductoPedido);
btnAumentar = (Button) itemView.findViewById(R.id.btnAumentarCantidadDetallePedido);
btnDisminuir = (Button) itemView.findViewById(R.id.btnDisminuirCantidadDetallePedido);
btnEliminar = (Button) itemView.findViewById(R.id.btnEliminarDetallePedido);
vistacatalogo = new CatalogoProductosFragment();
}
void setOnClickListeners() {
btnEliminar.setOnClickListener(this);
btnDisminuir.setOnClickListener(this);
btnAumentar.setOnClickListener(this);
}
public void setearTotal() {
Float total = 0f;
for (int i = 0; i < listaProductos.size(); i++) {
total += listaProductos.get(i).getSubtotal();
}
}
@Override
public void onClick(View v) {
final int position = getAdapterPosition();
switch (v.getId()) {
case R.id.btnEliminarDetallePedido:
**//AQUÍ AGREGO LA LÓGICA PARA ELIMINAR**
if(m.isOnlineNet()) {
requestQueue = Volley.newRequestQueue(context);
String URL_ELIMINARDP = Utilidades.WEB_SERVICE + "?accion=ELIMINAR_DETALLE_PEDIDO";
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_ELIMINARDP,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//BASTANTE ÚTIL PARA VER ERRORES
Log.i("tagconvertstr", "["+response+"]");
try {
JSONObject rptaJson = new JSONObject(response);
String respuesta = rptaJson.getString("1");
if(respuesta.equals("1")) {
listaProductos.remove(position);
notifyItemRemoved(position);
notifyDataSetChanged();
setearTotal();
} else if(respuesta.equals("2")) {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("tagconvertstr", "["+error+"]");
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("id_detalle", listaProductos.get(position).getId()+"");
return parametros;
}
};
requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
}
///////////////////////////////////////////////
break;
}
}
}
Como vemos, cada vez que doy click to un add on un un Item RecyclerView, Elimino La Fila and También Lo hago En la Base de Data, luego en la funciónsetearTotal () всего за все время, пока не закончено. Редактирование текста. EditText.
Ejemplo:
EN EL RecyclerView
- ПУНКТ 1: [Кнопка btnEliminar] Cantidad = 5
- ПУНКТ 2: [Кнопка btnEliminar] Cantidad = 10
EN EL Фрагмент
[TextView Total] = 15
Cuando doy clicken btnEliminar del ITEM 1, актуализированный текст TextView a 10
31 Cómo podría hacerlo, muchas gracias de antemano?