首页 > 解决方案 > 仅在加载时显示所有 recyclerview 内容(AsyncTask)

问题描述

如何加载 recyclerview 的所有内容,只有在完成时才显示 recyclerview。

我有一个 recyclerview,当我打开一个活动时,我希望页面加载显示进度条。当它完成加载时,它会显示 recyclerview 的所有内容。

你能帮我吗?谢谢。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pesquisa_cidade);


progressBar = findViewById(R.id.idPesquisaCidadeProgressBar);
    recyclerView = findViewById(R.id.idPesquisaCidadeRecyclerview);

    recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    recyclerView.setHasFixedSize(true);
    cidadeAdapter = new PesquisaRegiaoCidadeAdapter(listaComLocaisDaCidadePesquisada, getApplicationContext());
    recyclerView.setAdapter(cidadeAdapter);

}

}

@Override
protected void onResume() {
    super.onResume();
  
    AsyncTaskCarregarCidadePesquisada tarefa = new AsyncTaskCarregarCidadePesquisada(); 
    tarefa.execute();

}

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        progressBar.setVisibility(View.VISIBLE);
        recyclerView.setVisibility(View.GONE);

    }

    @Override
    protected Void doInBackground(String... strings) {

        CollectionReference locais =    dataBase.collection("cidade").document(paisDaCidadePesquisada).collection(cidadePesquisada);

       
        locais.get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()) {

                            for (final DocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
                                listaComLocaisDaCidadePesquisada.add(document.toObject(Locais.class));
                            }

                            cidadeAdapter.notifyDataSetChanged();
                        }
                    }
                });


        return null; 
    }
    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);

        recyclerView.setVisibility(View.VISIBLE);
        progressBar.setVisibility(View.GONE);

    }
}

}

标签: android-recyclerview

解决方案


推荐阅读