Exibindo um ProgressDialog enquanto aguarda um segmento unido
Na minha atividade, eu carrego o conteúdo de uma lista de um banco de dados e quero exibir um ProgressDialog enquanto ele está carregando.
Eu tenho os dois trabalhando em seu próprio, mas se eu carregar os dados em um segmento (o que devo fazer?), A lista é exibida antes de seus dados serem carregados. Mas se eu usar join, o ProgressDialog nem aparece.
Como posso combinar isso? Ou isso não é possível com threads? (AsyncTask talvez?)
Aqui está o código para referência:
final ProgressDialog progressD=ProgressDialog.show(ShopSwitchActivity.this, "", "Loading..", true);
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {
try
{
getData();
}catch(Exception e){}
}
});
myThread.start();
try {
myThread.join();
} catch (InterruptedException e) {
}
progressD.dismiss();
EDIT: atualizado código com AsyncTask:
public class LoadList extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
ShopSwitchActivity activity;
public LoadList(ShopSwitchActivity activity) {
this.activity = activity;
dialog = new ProgressDialog(activity);
}
protected void onPreExecute() {
this.dialog.setMessage("Loading...");
this.dialog.show();
}
@Override
protected void onPostExecute(final Boolean success) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
protected Boolean doInBackground(final String... args) {
try{
activity.getData();
} catch (Exception e) {
Log.e("error", e.getMessage());
}
return true;
}
}
Edit: Minha Solução Usando o AsyncTask agora para carregar os dados, e depois disso, atualizo a lista com os novos dados.