第二次单击带有图像的浮动按钮(示例:添加到喜欢的)



首先单击:浮动按钮上的图像将变成填充的红色并将数据提交给firebase。

第二次单击:浮动按钮上的图像将变成边框,并将从firebase删除项目。

,但似乎是我第二次单击"从firebase中删除物品"。

btnLove.setOnClickListener(new View.OnClickListener() {
        boolean showingFirst;
        @Override
        public void onClick(View v) {
            if(showingFirst == true){
                btnLove.setImageResource(R.drawable.fav_filled_50);
                showingFirst = false;
                fav =  new Favorites(Common.currentUser.getPhone(),
                        drinkId,
                        currentDrink.getName(),
                        currentDrink.getImage(),
                        currentDrink.getPrice()
                        );
                favorites.child(Common.currentUser.getPhone()).child(drinkId).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        if(dataSnapshot.child(Common.currentUser.getPhone()).exists())
                        {
                            favorites.child(Common.currentUser.getPhone()).child(drinkId).removeValue();
                            favorites.child(Common.currentUser.getPhone()).child(drinkId).setValue(fav);
                        }
                        else
                        {
                            favorites.child(Common.currentUser.getPhone()).child(drinkId).setValue(fav);
                        }
                    }
                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });

            } else {
                btnLove.setImageResource(R.drawable.fav_border_50);
                btnLove.setTag(70);
                showingFirst = true;
                favorites.child(Common.currentUser.getPhone()).child(drinkId).removeValue();
            }

        }
    });

删除

boolean showingFirst = true;

形成setOnClickListener,并将其放入SetOnClickListener方法的外部。当您单击按钮时,显示始终是true,因为您会创建此。

最新更新