Quando tento adicionar itens à minha listview, ao invés deles serem inseridos um em cada linha, o valor atribuído ao adapter é substituído, ficando sempre na primeira linha da listview.
Código da função que chama o Adapter:
private void preencheLista(String[] resposta) {
Pedido_Itens itensPedido = new Pedido_Itens();
listItens = new ArrayList<>();
itensPedido.setCod_produto(resposta[0]);
itensPedido.setDesc_produto(resposta[1]);
itensPedido.setQuantidade(Integer.parseInt(resposta[2]));
itensPedido.setItem(Integer.parseInt(resposta[3]));
listItens.add(itensPedido);
lista.setAdapter(new ListaItensPedidoAdapter(listItens, this));
//adapter.notifyDataSetChanged();
}
Código do Adapter customizado:
public class ListaItensPedidoAdapter extends BaseAdapter{
private final List<Pedido_Itens> itens;
private final Context ctx;
public ListaItensPedidoAdapter(List<Pedido_Itens> itens, Context ctx) {
this.itens = itens;
this.ctx = ctx;
}
@Override
public int getCount() {
return itens.size();
}
@Override
public Object getItem(int position) {
return itens.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(ctx);
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.listaitens, parent, false);
}
TextView campoCodigo = (TextView) view.findViewById(R.id.listaitens_codigo);
TextView campoQuantidade = (TextView) view.findViewById(R.id.listaitens_quantidade);
TextView campoDescricao = (TextView) view.findViewById(R.id.listaitens_descricao);
TextView campoItem = (TextView) view.findViewById(R.id.listaitens_item);
Pedido_Itens pedidoItens = itens.get(position);
campoCodigo.setText(pedidoItens.getCod_produto());
campoDescricao.setText(pedidoItens.getDesc_produto());
campoQuantidade.setText(String.valueOf(pedidoItens.getQuantidade()));
campoItem.setText(String.valueOf(pedidoItens.getItem()));
return view;
}
}