尝试在空对象方法上调用虚拟方法'double java.lang.Double.doubleValue()'

时间:2019-04-25 19:32:30

标签: java android

我正在制定一种方法,以在删除某件商品时将购物车的价值归零,但是在完整代码下方发生错误

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);




}

}

0 个答案:

没有答案