2016-12-27 9 views
0

Firebaseの情報でRecyclerViewを更新しようとしています。私は正常にFirebaseから私のビュー内のTextViewsを更新することができましたが、そうすることで、私の現在のコードはRecyclerViewのgetChildCount()を無限ループすることなくデータベースからの子供の量で更新しません。FirebaseからgetChildCount()を動的に更新しますか?

私の現在のコード:(CardAdapter.java)

public int getChildCount() { 
     mDatabase = FirebaseDatabase.getInstance(); 
     mReference = mDatabase.getReference(); 
     final String userID = FirebaseAuth.getInstance().getCurrentUser().getUid(); 
     ValueEventListener listener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for (DataSnapshot snap : 
         dataSnapshot.child("pet").child("users").child(userID).getChildren()) { 
        mChildCount = (int) snap.getChildrenCount(); 
       } 
       notifyDataSetChanged(); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
      } 
     }; 
     mReference.addListenerForSingleValueEvent(listener); 
     return mChildCount; 
    } 

このコードは動作しますが、それは無限にnotifyDataSetChangedに起因してループ();メソッドを呼び出してRecyclerViewを更新します。

RecyclerView getChildCount()が無限にループすることなくFirebaseから動的に更新されるようにするにはどうすればよいですか?

答えて

0

getChildrenCount()のデータを取得するコードを配置しないでください。私自身、通常Activityまたは内部のコンストラクタAdapterに配置します。このように:

希望のこのヘルプ。

+0

少し微調整して、それはトリックでした!ありがとうございました! –

+0

よろしくお願いいたします。ハッピーコーディング:) – koceeng

関連する問題