Recyclerview changing information every 10 lines automatically

0

Good afternoon, I'm creating a shopping cart where you have a recyclerview listing the products, next to each product has a + or - quantity field that will have the function of adding and increasing the quantity of product but the problem is that when I change the quantity of a product automatically this amount also goes to other lines, interspersed with 10 out of 10, I know this is because the middle recyclerview loads 10 out of 10 and goes cleaning, so I do not know how to solve this, follow code and below reference image

public class ProdutosCodBarrasAdapter extends RecyclerView.Adapter<ProdutosCodBarrasAdapter.ViewHolderProdutos> {

private List<Produto> dados;
private List<PedidoItens> dados2;
public Button actionProdMais;
public Button actionProdMenos;
public TextView txtQtd;
private TabelaPreco tabelaPreco;
private TabelaPrecoProdutoRepositorio tabelaPrecoProdutoRepositorio;
public Double varBaseValor;
public int varCodProduto;
public Double passaQtd;
public Produto[] produto;
public String varprecoBaseNovoAjuste;
public int varCodProdutoExcluir;
public int varCodProdutoItemExcluir;
private SQLiteDatabase conexao;
private DadosOpenHelper dadosOpenHelper;
public int varB;
public int varC;
public int varD;
public String varE;
public static final String NOME_PREFERENCE = "INFORMACOES_LOGIN_AUTOMATICO";
public int cli_emp_id;



public ProdutosCodBarrasAdapter(List<Produto> dados){
    this.dados = dados;
}

@NonNull
@Override
public ProdutosCodBarrasAdapter.ViewHolderProdutos onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    View view = layoutInflater.inflate(R.layout.linha_carrinho_add, parent,false);//R.layout.linha_produtos, parent,false
    ViewHolderProdutos holderProdutos = new ViewHolderProdutos(view, parent.getContext());
    view.setBackgroundColor(0xFFF0F0F0);

    return holderProdutos;
}


@Override
public void onBindViewHolder(@NonNull ProdutosCodBarrasAdapter.ViewHolderProdutos holder, int position) {
    if((dados != null) && (dados.size() > 0)) {
        DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR")));
        formatoDois.setMinimumFractionDigits(2);
        formatoDois.setParseBigDecimal (true);

        //CARREGAR NA BINDVIEW aqui ele gera de 10 em 10, sempre ir atualizano a lista com as alterações (dados)

        Produto produto = dados.get(position);

        holder.listNomeProd.setText(produto.tab_id + " : " + produto.est_descricao_cor + " - " + produto.est_tam + " posição: "+position);//aqui morre
        //holder.listRefProd.setText(produto.prod_referencia.toString());//
        varprecoBaseNovoAjuste = new String(formatoDois.format(produto.tab_preco_final));

        varB = Integer.parseInt(produto.varCodPed);//codigo do pedido
        varC = Integer.parseInt(String.valueOf(produto.codigo_prod));//codigo produto
        varD = Integer.parseInt(String.valueOf(produto.est_id_cor));//codigo da cor
        varE = String.valueOf(produto.est_tam);//tamanho

        holder.listPrecoProd.setText(varprecoBaseNovoAjuste);//aqui? holder.listPrecoProd.setText(formatoDois.format(produto.tab_preco_final.toString()));
        varCodProdutoItemExcluir = produto.prod_id;
        holder.listPegaCodPedidoItem2.setText(String.valueOf(varCodProdutoItemExcluir));
        varBaseValor = produto.tab_preco_final;
        varCodProduto = produto.prod_id;

    }
}

@Override
public int getItemCount() {
    return dados.size();
}

public class ViewHolderProdutos extends RecyclerView.ViewHolder implements View.OnClickListener {
    private TextView listNomeProd;
    private TextView listPrecoProd;
    private ImageView idImagen;
    private TextView txtQtd;
    private double pegaQtd;
    private TextView listPegaCodPedidoItem2;

    public ViewHolderProdutos(@NonNull View itemView, final Context context) {
        super(itemView);
        listNomeProd = (TextView) itemView.findViewById(R.id.listNomeProd);
        listPrecoProd = (TextView) itemView.findViewById(R.id.listPrecoProd);
        txtQtd = (TextView) itemView.findViewById(R.id.txtQtd);
        passaQtd = Double.valueOf(txtQtd.getText().toString());
        listPegaCodPedidoItem2 = (TextView) itemView.findViewById(R.id.listPegaCodPedidoItem2);

        actionProdMais = (Button) itemView.findViewById(R.id.actionProdMais);
        actionProdMais.setOnClickListener(this);
        actionProdMenos = (Button) itemView.findViewById(R.id.actionProdMenos);
        actionProdMenos.setOnClickListener(this);

        //ATUALIZAR ELE NA VIEW


        //
        actionProdMenos.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                // get position
                int pos = getAdapterPosition();

                // check if item still exists
                if(pos != RecyclerView.NO_POSITION){
                    Produto produto = dados.get(pos);

                    Double pegaQtd2 = Double.valueOf(txtQtd.getText().toString());
                    if(pegaQtd2 > 1.00){pegaQtd2--;}
                    txtQtd.setText(pegaQtd2.toString());

                    Double pegaPrecoProd2 = pegaQtd2 * varBaseValor;
                    DecimalFormat formatoDois2 = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR")));
                    formatoDois2.setMinimumFractionDigits(2);
                    formatoDois2.setParseBigDecimal (true);
                    listPrecoProd.setText(formatoDois2.format(pegaPrecoProd2).toString());
                    passaQtd = Double.valueOf(pegaQtd2.toString());
                    Toast.makeText(v.getContext(), "TAM: " + produto.est_tam + "QTD: " + passaQtd, Toast.LENGTH_SHORT).show();

                    //ProdutosCodBarrasAdapter.this.notifyItemChanged(pos, "payload " + pos);
                    //Toast.makeText(v.getContext(), "You clicked " + produto.est_tam, Toast.LENGTH_SHORT).show();
                }
            }
        });
        //

        //
        actionProdMais.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                // get position
                int pos = getAdapterPosition();

                // check if item still exists
                if(pos != RecyclerView.NO_POSITION){
                    Produto produto = dados.get(pos);

                    Double pegaQtd = Double.valueOf(txtQtd.getText().toString());
                    pegaQtd++;
                    txtQtd.setText(pegaQtd.toString());
                    Double pegaPrecoProd = pegaQtd * varBaseValor;
                    DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR")));
                    formatoDois.setMinimumFractionDigits(2);
                    formatoDois.setParseBigDecimal (true);
                    listPrecoProd.setText(formatoDois.format(pegaPrecoProd).toString());
                    passaQtd = Double.valueOf(pegaQtd.toString());

                    Toast.makeText(v.getContext(), "TAM: " + produto.est_tam + "QTD: " + passaQtd, Toast.LENGTH_SHORT).show();
                }
            }
        });
        //


    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.actionProdMais:

                break;
            case R.id.actionProdMenos:

                break;
            default:
                break;
        }
    }

}

}

    
asked by anonymous 07.12.2018 / 16:00

0 answers