大家好,我正在Firebase的帮助下制作一个android应用程序。该应用程序运行正常,但是自从我尝试添加收藏夹按钮的功能以来,我无法从代码的“添加收藏夹”部分中获取错误。 current_state =“ not av” 上面的部分说明了用户当前的收藏夹状态。 以下代码用于“添加收藏夹”部分。
Holder.mFavourites.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (current_state.equals("not fav")){
mFav.child(puid).child(kk).child("fav_status").setValue("Added as " +
"fav").addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Holder.mFavourites.setImageDrawable(getContext().getDrawable(R.drawable.ic_star_black));
current_state = "fav";
Toast.makeText(getContext(),"Added to favourites",Toast
.LENGTH_SHORT).show();
}
});
}else if (current_state.equals("fav")){
mFav.child(puid).child(kk).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Holder.mFavourites.setImageDrawable(getContext().getDrawable(R.drawable.ic_star_border_black_24dp));
current_state = "not fav";
Toast.makeText(getContext(),"Removed from favourites",Toast
.LENGTH_SHORT).show();
}
}
});
}
}
});
我在上面的代码上遇到了问题- 1.每当用户第一次单击代码时。他被添加到收藏夹,并且如果再次单击相同的按钮,则将其从收藏夹中删除,但是如果用户单击一次(即在被添加为收藏夹之后)继续前进,然后再次单击添加到收藏夹按钮,则无论用户是否在“收藏夹”数据库中,都将显示“从收藏夹中删除”的吐司。
答案 0 :(得分:0)
current_state是等于“ not fav”的类变量吗?因为看起来您的if语句只是在读取字符串,实际上并不知道数据库中发生了什么。如果您将所有收藏夹查询到arraylist并针对该arraytest测试if语句,该怎么办