I have a problem with a method in which you are calculating the quantity of a single product rather than calculating all that I select.
I'm sure the problem is in the position I passed to the variables when I start them.
The method follows:
private void setEvents() {
//Já está passando o preço do produto, mas ainda preciso calcular o preço de todos, vezes a quantidade.
final List<Double> listaValorDoProduto = new ArrayList<Double>();
final List<Integer> listaQuantidadeDoProduto = new ArrayList<Integer>();
final List<Double> listaValorTotalDoProduto = new ArrayList<Double>();
/*final double[] valorDoProduto = new double[1];
final int[] quantidadeDoProduto = new int[1];
final double[] valorTotalDoProduto = new double[1];*/
Button botaoFinalizarPedido = (Button) findViewById(R.id.btn_finalizar_pedido);
botaoFinalizarPedido.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double total;
double valor = 0;
int quantidade = 0;
int x = 0;
int y = 0;
Intent intent = new Intent(ProdutoActivity.this, ServicoDeEmailActivity.class);
Bundle params = new Bundle();
/*valorDoProduto[0] = app.getValorDoProduto();
quantidadeDoProduto[0] = app.getTotal();
total = valorDoProduto[0] * quantidadeDoProduto[0] ;*/
listaValorDoProduto.add(app.getValorDoProduto());
listaQuantidadeDoProduto.add(app.getTotal());
for (Double valorDoProduto : listaValorDoProduto){
while(x < valorDoProduto) {
valor = valorDoProduto;
x++;
}
}
for (Integer quantidadeDoProduto :listaQuantidadeDoProduto){
while(y < quantidadeDoProduto) {
quantidade = quantidadeDoProduto;
y ++;
}
}
total = valor * quantidade;
params.putDouble("ValorDoProduto", total);
intent.putExtras(params);
startActivity(intent);
}
});
}
I've reissued the method, I think it's better.
Here are the methods used in the App class:
//Adicionando a lista de Produtos dentro de Compra (Carrinho de Compra).
public void adicionarProduto(ItemCompra itemCompra) {
//Percorrendo os itens da compra e passando os itens para o carrinho.
for (ItemCompra itemCompraDoCarrinho : compra.getItens()) {
//Se o item do carrinho for igual ao item da lista de compra...
if (itemCompraDoCarrinho.equals(itemCompra)) {
//Retorno a quantidade de item e somando + 1.
itemCompraDoCarrinho.setQuantidade(itemCompraDoCarrinho.getQuantidade() + 1);
return;
}
}
//Adiciona a quantidade na lista de compras
itemCompra.setQuantidade(1);
compra.getItens().add(itemCompra);
}
public double getValorDoProduto(/*ItemCompra itemCompra*/) {
Log.i("App", "Dentro do método getValorDoProduto");
for (ItemCompra itemCompraDoCarrinho : compra.getItens()) {
//if (itemCompraDoCarrinho.equals(itemCompra)) {
Log.i("App", "Obtendo o valor do item...");
return itemCompraDoCarrinho.getProduto().getValor();
//}
}
Log.i("App", "Não conseguiu pegar o valor do produto e retornou 0");
return 0;
}
public int getTotal() {
//int quantidade = 0;
for (ItemCompra itemCompraDoCarrinho : compra.getItens()) {
//quantidade = itemCompraDoCarrinho.getQuantidade();
return itemCompraDoCarrinho.getQuantidade();
}
return 0;
}