【问题标题】:Android, on finish loading data from firebaseAndroid,完成从 firebase 加载数据
【发布时间】:2019-01-30 23:03:54
【问题描述】:

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

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

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

【问题讨论】:

  • 显示你的代码。提示:你会在设置 recyclerview 适配器之前隐藏进度条
  • 贴出活动的代码sn-p

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


【解决方案1】:

假设您使用FirestoreRecyclerAdapter,为了解决这个问题,创建一个ProgressBar 的新对象并开始在onCreate() 方法中显示它,或者如果您想直接将它添加到您的.XML 文件中,最后在您的适配器类,覆盖以下方法:

@Override
public void onDataChanged() {
    if (progressBar != null) {
        progressBar.setVisibility(View.GONE);
    }
}

【讨论】:

    【解决方案2】:

    您应该提供您的代码。但我会尝试用我的代码来解释。 (我的代码使用 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) {
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-22
      • 2017-05-28
      • 2021-04-15
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2017-06-12
      • 2021-01-03
      相关资源
      最近更新 更多