【问题标题】:Showing progress bar while loading Firebase database加载 Firebase 数据库时显示进度条
【发布时间】:2017-05-29 09:52:44
【问题描述】:
我在我的应用中使用 Firebase 实时数据库。我有 listView 和适配器,适配器的每个视图都从 Firebase 数据库加载一项。但是加载所有数据需要几秒钟(每个项目都有图像和名称)。所以我想向用户显示进度条或其他东西,但我不知道放在哪里。
我想过使用 asynctask 什么的,但问题是我真的不知道数据加载到哪里。我正在将子事件侦听器附加到 Firebase 数据库引用对象,所以每当添加一个新子时,适配器都会更新,但我不知道如何知道所有子事件都已完成加载。
希望你能理解我并帮助我。
【问题讨论】:
标签:
android
firebase
firebase-realtime-database
android-progressbar
【解决方案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());
}
});
}