我想创建两个按钮,一个按钮,另一个是不喜欢的。
我写这篇文章:
mDatabaseLikeReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (clickLike) {
if (dataSnapshot.hasChild(mFirebaseUser.getUid())) {
mDatabaseRateMinsReference.child(mFirebaseUser.getUid()).removeValue();
clickLike= false;
} else {
mDatabaseRateMinsReference.child(mFirebaseUser.getUid()).setValue(mFirebaseUser.getDisplayName());
clickLike= false;
}
} } @Override
public void onCancelled(DatabaseError databaseError) {
}
这对于一个按钮来说是有用的,如果用户单击"喜欢"按钮,然后不喜欢按钮,从数据库中删除了类似按钮,反之亦然?谢谢。
为您的按钮实现onClickListener
,在onClick(View view)
中执行此操作:
// based on what button clicked, you can also check if button is enabled.
if(view.getid()== R.id.unlikeButton){
mDatabaseLikeReference.removeValue();
}
else if (view.getid()== R.id.likedButton)
mDatabaseLikeReference.setValue(mFirebaseUser.getDisplayName());
然后在您的数据库值事件侦听器中:
mDatabaseLikeReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
mDatabaseRateMinsReference
.child(mFirebaseUser.getUid())
.setValue(mFirebaseUser.getDisplayName());
likedbutton.setVisibility(VISIBLE);
unlikebutton.setVisibility(GONE);
}
else{
mDatabaseRateMinsReference
.child(mFirebaseUser.getUid())
.removeValue();
// enable/disable or change visibility or change color
likedbutton.setVisibility(GONE);
unlikebutton.setVisibility(VISIBLE);
}
} @Override
public void onCancelled(DatabaseError databaseError) {
}