首先单击:浮动按钮上的图像将变成填充的红色并将数据提交给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,因为您会创建此。