我正在制定一种方法,以在删除某件商品时将购物车的价值归零,但是在完整代码下方发生错误
public static void updateValor(){
ItensCarrinho itensCarrinho = new ItensCarrinho();
ValoresPedido valoresPedido = new ValoresPedido();
Integer qtde = itensCarrinho.getQtd();
Double totalTudo = itensCarrinho.getTotalItem();
total -=(totalTudo * qtde);
qtd -= qtde;
valoresPedido.setValorTotalProduto(totalTudo);
}
我尝试执行此方法,但发生错误
公共类TelaCarrinho扩展了AppCompatActivity {
private RecyclerView recyclerView;
private static List<ItensCarrinho> itensCarrinho = new ArrayList<>();
private TextView enderecoEntrega,valorTotal,cpf;
private Button buttonCpf,buttonPedido;
private static Double total;
private static Integer qtd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela_carrinho);
//sumir a toolbar
getSupportActionBar().hide();
//Inicializar os componentes
recyclerView = findViewById(R.id.recyclerCarrinho);
enderecoEntrega = findViewById(R.id.textEnderecoEntrega);
valorTotal = findViewById(R.id.textValorTotal);
cpf = findViewById(R.id.textCPFCarrinho);
buttonPedido = findViewById(R.id.buttonFazerPedido);
buttonCpf = findViewById(R.id.buttonTrocarCPF);
total = 0.0;
qtd = 0;
//Configurando o Recycler
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
final AdapterCarrinho adapterCarrinho = new AdapterCarrinho(itensCarrinho, this);
recyclerView.setAdapter(adapterCarrinho);
// Evento de click no Recycler
recyclerView.addOnItemTouchListener( new RecyclerItemClickListener(this, recyclerView,
new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, final int position) {
AlertDialog.Builder dialog = new AlertDialog.Builder(TelaCarrinho.this);
dialog.setTitle("OLHA ESSA PORRA");
dialog.setPositiveButton("sim", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
remover(itensCarrinho.get(position).getKey());
}
});
dialog.create();
dialog.show();
}
@Override
public void onLongItemClick(View view, int position) {
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
}));
//Recuperando dados
FirebaseChildsUtils.getItensCarrinho(FirebaseConfig.getFirebaseAutentificacao().getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
itensCarrinho.clear();
for (DataSnapshot child: dataSnapshot.getChildren()){
ItensCarrinho carrinho = child.getValue(ItensCarrinho.class);
itensCarrinho.add(carrinho);
}
adapterCarrinho.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
FirebaseChildsUtils.getUsuario(FirebaseConfig.getFirebaseAutentificacao().getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Usuario usuario = dataSnapshot.getValue(Usuario.class);
cpf.setText(usuario.getCpf());
enderecoEntrega.setText(usuario.getEndereco() + usuario.getNumero() + usuario.getComplemento());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
FirebaseChildsUtils.getValoresPedido(FirebaseConfig.getFirebaseAutentificacao().getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ValoresPedido valoresPedido = dataSnapshot.getValue(ValoresPedido.class);
DecimalFormat df2 = new DecimalFormat("#.##");
df2.setRoundingMode(RoundingMode.DOWN);
df2.format(valoresPedido.getValorTotalProduto());
df2.setRoundingMode(RoundingMode.UP);
df2.format(valoresPedido.getValorTotalProduto());
valorTotal.setText(String.valueOf(df2.format(valoresPedido.getValorTotalProduto())));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
buttonPedido.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertCarrinho();
insertHistorico();
finish();
Toast.makeText(TelaCarrinho.this, " Pedido Realizado com sucesso ",
Toast.LENGTH_SHORT).show();
}
});
buttonCpf.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
abrirAlert();
}
});
}
public void remover(String key){
DatabaseReference firebaseRef = FirebaseConfig.getFirebase();
DatabaseReference produtoRef =firebaseRef.child("Usuarios")
.child(FirebaseConfig.getFirebaseAutentificacao().getUid())
.child("MeusPedidos")
.child(key);
produtoRef.removeValue();
updateValor();
}
//Fazendo o AlertDialog
public void abrirAlert(){
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Trocar CFP");
dialog.setMessage("teste");
dialog.setPositiveButton("sim", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(TelaCarrinho.this,"Produto Excluido com sucesso ",
Toast.LENGTH_SHORT).show();
}
});
}
private static void insertCarrinho(){
final DatabaseReference childPedido = FirebaseChildsUtils.getPedido();
String keyPedido = childPedido.getKey();
String uid = FirebaseConfig.getFirebaseAutentificacao().getUid();
setUsuario(uid,childPedido.child("DadosCliente"));
setItem(childPedido.child("Itens"),itensCarrinho);
setValorAtualDoPedido(FirebaseChildsUtils.getValoresPedido(uid),childPedido.child("ValoresPedido"));
childPedido.child("key").setValue(keyPedido);
}
private static void insertHistorico(){
String uid = FirebaseConfig.getFirebaseAutentificacao().getUid();
final DatabaseReference childPedido = FirebaseChildsUtils.getHistorico(uid);
String keyPedido = childPedido.getKey();
setUsuario(uid,childPedido.child("DadosCliente"));
setItem(childPedido.child("Itens"),itensCarrinho);
setValorAtualDoPedido(FirebaseChildsUtils.getValoresPedido(uid),childPedido.child("ValoresPedido"));
childPedido.child("key").setValue(keyPedido);
}
public static void setUsuario(String uid, final DatabaseReference referenceKey){
//Trazer dados do Firebase
FirebaseChildsUtils.getUsuario(FirebaseConfig.getFirebaseAutentificacao().getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
Usuario usuario = dataSnapshot.getValue(Usuario.class);
referenceKey.setValue(usuario);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public static void setItem(DatabaseReference referenceKey, List<ItensCarrinho> carrinho){
for(ItensCarrinho item : carrinho){
referenceKey.child(item.getKey()).setValue(item);
}
}
public static void setValorAtualDoPedido(DatabaseReference refLeitura, final DatabaseReference refInsert){
refLeitura.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ValoresPedido valoresPedido = dataSnapshot.getValue(ValoresPedido.class);
refInsert.setValue(valoresPedido);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public static void updateValor(){
ItensCarrinho itensCarrinho = new ItensCarrinho();
ValoresPedido valoresPedido = new ValoresPedido();
Integer qtde = itensCarrinho.getQtd();
Double totalTudo = itensCarrinho.getTotalItem();
total -=(totalTudo * qtde);
qtd -= qtde;
valoresPedido.setValorTotalProduto(totalTudo);
}
}