首页 > 解决方案 > 它会删除该值,但在删除该值后,总数会增加一倍,并且必须从活动中退出以刷新删除后的金额

问题描述

请帮帮我:程序会删除该值,但不是删除它而是加倍,然后我必须退出活动以在取消后刷新正确的数量。

   DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Sales");
    sum = 0;
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            list = new ArrayList<SaleClass>();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {

                SaleClass p = (SaleClass) dataSnapshot1.getValue(SaleClass.class);

                list.add(p);
                sum += p.amount;




            }
            adapter = new SalesAdapter(Sales.this, list);
            adapter.notifyDataSetChanged();
            recyclerView.setAdapter(adapter);
            ttv.setText(("Total Sale: " + sum));
            dialog.dismiss();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(Sales.this, "Opsss.... Something is wrong " + databaseError.toString(), Toast.LENGTH_SHORT).show();
        }

    });

上面的代码是显示值和

适配器:

    @Override
    public boolean onLongClick(View view)
    {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage("Are you sure you want to DELETE?").setPositiveButton("Yes", dialogClickListener)
                .setNegativeButton("No", dialogClickListener).show();
        return true;
    }
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which){
                case DialogInterface.BUTTON_POSITIVE:
                    //Toast.makeText(context, getAdapterPosition()+" is clicked "+Sales.get(getAdapterPosition()).getId(), Toast.LENGTH_SHORT).show();
                    DatabaseReference reference= FirebaseDatabase.getInstance().getReference("Sales").child(Sales.get(getAdapterPosition()).getId());
                    reference.removeValue();
                    notifyDataSetChanged();

                    break;

                case DialogInterface.BUTTON_NEGATIVE:
                    Toast.makeText(context,"Cancelled",Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    };

}

这是用于删除数据并将其发送到主要活动

标签: android

解决方案


推荐阅读