Barre de progression lors du chargement ListView (à l'aide d'AsyncTask)
J'essaie d'afficher une barre de progression lors du chargement d'une coutume ListView et par la suite - de la cacher.
Je suis Asynchrone à l'aide de la tâche, mais pour une raison quelconque - L'affichage du contenu n'est pas défini et le précédent mode mise en page est bloquée jusqu'à ce que l'affichage de la liste est chargé.
Voici mon code:
private ListView listViewGameResults;
protected View dialogLayout;
protected ArrayList<Game> listGames;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.adresults);
GameResultsLoader gameResultsLoader = new GameResultsLoader();
gameResultsLoader.execute();
}
private class GameResultsLoader extends AsyncTask<Void, Void, Void> {
private GameResultsAdapter adapter;
public GameResultsLoader() {
}
@Override
protected void onPreExecute() {
}
@Override
protected Void doInBackground(Void... params) {
try {
listGames = GameResultsCache.getInstance().getGameResults();
adapter = new GameResultsAdapter(getBaseContext(), listGames);
listViewGameResults = (ListView)findViewById(R.id.listViewGameResults);
}
catch (Exception e) {
//TODO Auto-generated catch block
finish();
}
return null;
}
@Override
protected void onPostExecute(Void res) {
listViewGameResults.setAdapter(adapter);
listViewGameResults.setDivider(null);
listViewGameResults.setDividerHeight(0);
ProgressBar pb = (ProgressBar)findViewById(R.id.progressbar_loading);
pb.setVisibility(View.GONE);
}
}
ProgressBar et ListView dans ma mise en page:
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_centerInParent="true"
android:id="@+id/progressbar_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/listViewGameResults"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="1dip"
android:layout_below="@+id/upperstrip"
android:layout_above="@+id/ivDownStrip" />
OriginalL'auteur ohadinho | 2012-09-05
Vous devez vous connecter pour publier un commentaire.
Vous devez définir la visibilité par défaut du
progressBar
disparu.etonPreExecute()
de le rendre Visible etonPostExecute()
ensemble disparu.votre Activité devrait ressembler à ceci
Utiliser une catégorie distincte pour les
AsyncTask
J'ai éditer ma réponse un coup d'oeil ,j'espère que ça aidera
Le problème n'est pas au sujet de la ProgressBar. Le problème est lors de la configuration de l'affichage du contenu, il n'est pas réglé et il attend pour l'ensemble de la listview à charger.
C'est pourquoi je dis,Vous devez utiliser AsyncTask pour charger toute la listview dans le contexte de l'AsyncTask.Utilisation setContextView sur Oncreate().
C'est ce que je fais. Je suis réglage de l'affichage du contenu dans le "OnCreate" méthode, puis le chargement de la liste dans "doInBackground" dans AsyncTask
OriginalL'auteur Dilip
si votre aide asnkTask qui est un travail sur le Thread principal de l'application est beaucoup plus de la charge.donc, la meilleure solution est d'utiliser Service.class.
de télécharger cet exemple Vérifier ce lien toutes les solutions sont là et le télécharger:
vous devez également obtenir la liste de relancer cette application.
https://github.com/PankajSavaliyaGit/Upload-List
OriginalL'auteur Pankaj Savaliya
vous devez écrire le code pour démarrer progressDialog dans preExecute méthode et à la postExecute la rejeter.
changement de code suivant: mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); et dans le progressUpdate définir la valeur de votre barre de progression .
OriginalL'auteur NaserShaikh
La première chose que vous pouvez faire est de mettre la barre de Progression de code après
OnCreate
méthode. Mais la meilleure chose est de créer une méthode simple pour la barre de Progression et d'appeler uniquement dansOnCreate
méthode.Le code suivant a bien fonctionné pour moi:
Et ensuite appeler cette méthode dans
OnCreate
Vous pouvez arrêter les Progrès lorsque les données sont prêtes à vue à l'aide de:
J'espère que cela est utile.
OriginalL'auteur Obeda Al Ale