Android,从Firebase加载数据完成

时间:2018-08-24 12:51:00

标签: android firebase listview firebase-realtime-database android-recyclerview

如何在包含回收器视图的活动开始时显示进度栏,一旦回收器视图从Firebase数据库加载数据,该进度条应该被隐藏?

onCreate 方法中,我正在显示我的ProgressBar,但是我不知道何时应该隐藏它。

你们能给我一些想法吗?谢谢

2 个答案:

答案 0 :(得分:2)

假设您正在使用x %>% {list(.['a'], .['b'], ns)} %>% pmap(mult) %>% setNames(paste0('new', seq_along(ns))) %>% cbind(x) # new1 new2 a b # 1 3 6 1 2 # 2 5 10 2 3 # 3 7 14 3 4 来解决此问题,请创建一个FirestoreRecyclerAdapter的新对象,并开始在ProgressBar方法中显示它,或者如果您想直接将其添加到您的.XML文件,最后在您的适配器类中,重写以下方法:

onCreate()

答案 1 :(得分:1)

您应该提供您的代码。但是我会尝试用我的代码来解释。 (我的代码使用LovelyProgressDialog作为ProgressBar,因为我喜欢UI。但是您可以使用自己喜欢的ProgressBar进行更改)

首先,您可以在onCreate方法中显示进度条(如果使用Fragment而不是Activity,则可以显示onCreateView)。

@Override
public View onCreate(Bundle savedInstanceState) {
        //Enter your code here
        dialogGetAllData.setCancelable(false)
                .setIcon(R.drawable.ic_add_friend)
                .setTitle("Get all friend....")
                .setTopColorRes(R.color.colorPrimary)
                .show();
        getListData();
}

然后从Firebase获取所有数据(这意味着dataSnapshot已经为空)之后,关闭进度条

    private void getListData() {
    FirebaseDatabase.getInstance().getReference().child("friend/" + StaticConfig.UID).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.getValue() != null) {
                HashMap mapRecord = (HashMap) dataSnapshot.getValue();
                Iterator listKey = mapRecord.keySet().iterator();
                while (listKey.hasNext()) {
                    String key = listKey.next().toString();
                    listFriendID.add(mapRecord.get(key).toString());
                }
            } else {
                dialogGetAllData.dismiss();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}