Deseo actualizar un TextView de un Fragment cuando elimino una fila de un RecyclerView - PullRequest
0 голосов
/ 08 октября 2019

Денежный текст и текстовые описания элементов 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. ПУНКТ 1: [Кнопка btnEliminar] Cantidad = 5
  2. ПУНКТ 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...