【发布时间】:2018-05-22 23:55:02
【问题描述】:
第一次点击:浮动按钮上的图片会变成实心红色并提交数据到 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();
}
}
});
【问题讨论】:
-
是否进入
else? -
亲爱的先生,否则当用户第二次点击并且图标返回到showingFirst = true时。这是什么时候,项目应该被删除
-
它没有进入else语句,因为showingfirst总是等于true,
onclicklistenershowingfirst=true,然后它进入if,showingfirst等于false。在另一次点击中,它再次输入onclicklistener,showingfirst 再次等于 true.. 所以它没有进入 else 语句 -
尊敬的先生,感谢您的解释。我已经编辑了上面的代码,但它没有从 Firebase 中删除项目
-
只需创建另一个按钮
标签: android firebase-realtime-database floating-action-button