첫 번째 클릭 : 플로팅 버튼의 이미지가 빨간색으로 바뀌고 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로 돌아갑니다. 여기 when 아이템은 아마도 –
을 제거 할 것입니다. 왜냐하면 showingfirst는 항상 true와 같기 때문에'onclicklistener' showingfirst = true이면 if를 입력하고 showingfirst는 false와 같습니다. 다른 클릭에서 다시'onclicklistener'를 입력하고 showing first는 true와 똑같습니다. 그래서 else 문을 입력하지 마십시오 –