2017-03-15 8 views
1

の原因になっているIてきた私は、現在のユーザーが他のロジックはこれを使用してChildEventListenerは奇妙な行動

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の投稿のコメントは、USER_1のデバイスに緑色に表示されますが、これはうまくいきますが、他のユーザーUSER_2がコメントのアイコンを投稿するとcommentImag eViewがUSER_2のデバイス緑色になりますが、commentImageViewのアイコンは、あなたが見ることができるように私が直面してる問題ですUSER_1

enter image description here

のデバイス上で暗くなる、私が表示したいですすべてのユーザーのcommentImageViewの緑色のアイコンです。最後に投稿にコメントしたユーザーは表示されません。このChildEventListenerが正しく動作するように変更する必要があります。詳細については、リクエストに応じて追加します。

答えて

1

ユーザがログインしたときにビューを初期化するときに暗い色を1回だけ設定します(いつでも緑色から暗い色にする必要があります)。次に、あなたの着色ロジックはに簡単になります。

if (comment.getUid().equals(Utils.getCurrentUser())){ 
    commentImageView.setImageDrawable(getDrawable(R.drawable.ic_comment_green)); 
} 
+0

おかげでたくさんの男、私はこの問題をデバッグに時間を費やしたが、それは簡単で作られた、どうもありがとう –

+1

@ArshadAli確かに、喜んでそれが働きました。私はここでこれを解決したような多くの問題を抱えていました。時には新鮮な眼のセットが必要です。 – samosaris

+0

O男! ___新鮮な目のセットは、時には必要なことすべてです。ハハハは言った... –