2017-05-29 10 views
0

私は自分のアプリでFirebaseリアルタイムデータベースを使用しています。リストビューとアダプタがあり、アダプタの各ビューはFirebaseデータベースから1つのアイテムを読み込みます。しかし、すべてのデータを読み込むには数秒かかる(各項目に画像と名前がある)。ですから、私はプログレスバーや何かをユーザーに見せたいと思っていますが、どこに置くべきかわかりません。Firebaseデータベースをロード中に進行状況バーを表示

私はasynctaskなどを使用することを考えましたが、問題はデータがどこにロードされているのかわかりません。子イベントリスナーをFirebaseデータベース参照オブジェクトに添付していますので、新しい子が追加されるたびにアダプタが更新されますが、すべての子がロード完了したことを知る方法はわかりません。

私を理解して助けてくれることを願っています。

答えて

1

が、これはいくつかのデータを設定する機能です参照してください。 -

 private void addUserChangeListener() { 
    *** you can initialize your progress dialog here 
       // User data change listener 


     mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        User user = dataSnapshot.getValue(User.class); 


        // Check for null 
        if (user == null) { 
         Log.e(TAG, "User data is null!"); 
         return; 
        } 

        Log.e(TAG, "User data is changed!" + user.name + ", " + user.email); 
    *** here you can check if the progress dialog is not null then close your progress dialog here 

        // Display newly updated name and email 
        txtDetails.setText(user.name + ", " + user.email); 

        // clear edit text 
        inputEmail.setText(""); 
        inputName.setText(""); 

        toggleButton(); 
       } 

       @Override 
       public void onCancelled(DatabaseError error) { 
        // Failed to read value 
***also close your progress dialog here 
        Log.e(TAG, "Failed to read user", error.toException()); 
       } 

      }); 
     } 
関連する問題