我是一个简单的场景,如果当前用户已对帖子进行评论,那么我将显示绿色图标显示 dark 图标逻辑是
mCommentChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
try{
if (dataSnapshot.exists() && dataSnapshot.hasChildren() && !dataSnapshot.equals(null)){
Comment comment = dataSnapshot.getValue(Comment.class);
if (comment.getPostId().equals(mPostId)){
mCommentList.add(comment);
mCommentAdapter.notifyDataSetChanged();
if (!comment.getUid().equals(Utils.getCurrentUser())){
commentImageView.setImageDrawable(getDrawable(R.drawable.ic_comment_dark));
} else {
commentImageView.setImageDrawable(getDrawable(R.drawable.ic_comment_green));
}
commentTextView.setText(String.valueOf(mCommentList.size()));
}
} else {
///
}
} catch (Exception e){
e.printStackTrace();
}
}
//omitting other @overide methods
};
使用此代码时,假设用户 USER_1 评论在发布时,commentImageView的图标在 USER_1 的设备上变为绿色,那真是太棒了,但当发布的其他用户 USER_2 评论时,commentImageView的图标变为绿色 USER_2 的设备,但 USER_1设备上的commentImageView图标变暗
这是我面临的问题,你可以看到,我想在每个用户的commentImageView上显示绿色图标,而不是在帖子上最后评论的单个用户,我应该在哪里进行更改,以便这个ChildEventListener正常工作,任何进一步的细节都将根据要求提供。
答案 0 :(得分:1)
我只会在用户登录时初始化视图时设置一次深色(无论如何你还需要从绿色变为暗色?)。然后你的着色逻辑简化为:
if (comment.getUid().equals(Utils.getCurrentUser())){
commentImageView.setImageDrawable(getDrawable(R.drawable.ic_comment_green));
}