Android, по завершении загрузки данных из Firebase - PullRequest
0 голосов
/ 24 августа 2018

Как отобразить индикатор выполнения при запуске действия, содержащего представление рециркулятора, которое должно быть скрыто, когда представление рециркулятора загружает данные из базы данных Firebase?

В onCreate метод, который я показываюмой ProgressBar, но я не знаю, когда мне его скрыть.

Можете ли вы дать мне несколько идей?Спасибо

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вы должны дать свой код.Но я постараюсь объяснить с моим кодом.(Мой код использует LovelyProgressDialog в качестве ProgressBar, потому что мне нравится пользовательский интерфейс. Но вы можете изменить его с помощью предпочитаемого ProgressBar)

Во-первых, вы можете отобразить индикатор выполнения в методе onCreate (или onCreateView, если вы используете Fragment вместо Activity).

@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 уже имеет значение null), вы отклоните индикатор выполнения

    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) {
        }
    });
}
0 голосов
/ 24 августа 2018

Предполагая, что вы используете FirestoreRecyclerAdapter, для решения этой проблемы создайте новый объект ProgressBar и начните показывать его в методе onCreate() или, если вы хотите добавить его непосредственно в файл .XML и, наконец, в класс вашего адаптера переопределите следующий метод:

@Override
public void onDataChanged() {
    if (progressBar != null) {
        progressBar.setVisibility(View.GONE);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...