I have a problem.
I made a method that calculates the count from clicks on the screen and throws that count into a EditText
, but the problem is that the count continues from the previous item, 0 on the next line.
Example:
If the item inListView
is in the number 5 , if I click on the other line, the number will be 6 .
I do not know if it has to do with the "end" that I put in the finalHolder
attribute before the setOnClickListener
method.
Follow the code:
public class AdapterProduto extends BaseAdapter {
private Context ctx;
private List<Produto> listaProdutos;
private int count;
private int newCount;
public AdapterProduto(Context ctx, List<Produto> listaProdutos) {
this.ctx = ctx;
this.listaProdutos = listaProdutos;
}
@Override
public int getCount() {
return listaProdutos.size();
}
@Override
public Object getItem(int posicao) {
return listaProdutos.get(posicao);
}
@Override
public long getItemId(int posicao) {
return listaProdutos.get(posicao).getId();
}
class MyViewHolder {
TextView texto;
ImageView soma;
ImageView sub;
ImageView excluir;
EditText contagem;
MyViewHolder(View v) {
texto = (TextView) v.findViewById(R.id.textViewLista);
soma = (ImageView) v.findViewById(R.id.ImagemAddProduto);
sub = (ImageView) v.findViewById(R.id.ImagemSubProduto);
excluir = (ImageView) v.findViewById(R.id.ImagemExcluir);
contagem = (EditText) v.findViewById(R.id.contagemDePodutosDaLista);
}
}
@Override
public View getView(int posicao, View convertView, ViewGroup parent) {
View row = convertView;
MyViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.layout_lista, parent, false);
holder = new MyViewHolder(row);
row.setTag(holder);
Log.i("Testando Holder", "Criando um novo row");
} else {
holder = (MyViewHolder) row.getTag();
Log.i("Testando Holder", "Repassando");
}
Produto produto = listaProdutos.get(posicao);
holder.texto.setText(produto.getConteudo());
holder.soma.setImageResource(R.drawable.ic_add);
holder.sub.setImageResource(R.drawable.ic_delete);
holder.excluir.setImageResource(R.drawable.ic_trash);
holder.contagem.setId(R.id.contagemDePodutosDaLista);
final MyViewHolder finalHolder = holder;
holder.soma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == finalHolder.soma.getId()){
Log.i("Adapter", "Dentro do metodo de fazer a contagem");
Integer.parseInt(finalHolder.contagem.getText().toString());
count = count + 1;
finalHolder.contagem.setText(String.valueOf(count));
Log.i("Adapter", "Contagem efetuada");
}
else
{
Integer.parseInt(finalHolder.contagem.getText().toString());
newCount = newCount + 1;
finalHolder.contagem.setText(String.valueOf(newCount));
}
}
});
return row;
}
}