2010-09-28 8 views
0

Je veux charger dynamiquement un ListView, par exemple, les charger pendant le défilement de sorte qu'il ne charge pas tous les 100 messages que j'ai. Comment puis-je atteindre cet objectif?Chargement dynamique ListView

J'ai examiné des solutions similaires ici à SO, mais comme je ne l'ai pas eu à travailler, j'ai posé cette question.

Mon code:

//orders is my is my ArrayList<WithMyOwnOrderClass> that handling orders 
/* adapter is my inner private class in this piece of code, that trigging 
the getView */ 
if(orders != null && orders.size() > 0){ 

for(int i=0;i<orders.size();i++){   
    adapter.add(orders.get(i)); 
} 
      adapter.notifyDataSetChanged(); 
      progressDialog.dismiss(); 
} 

J'ai dans le même fichier .java, fonctions pour télécharger les informations à partir du Web et boucle à travers 100 articles, comme ceci:

JSONObject jObject = new JSONObject(queryResult); 
SONArray docsArray = jObject.getJSONArray("array"); 
    for (int i = 0; i < 100; i++) { 
     try {  
      title = docsArray.getJSONObject(i).optString("title"); 
      } catch (JSONException e) {}  
    } 

puis il ajouter une nouvelle commande correctement et ainsi de suite. Mais maintenant! (?) Je veux avoir ainsi quand le premier article est chargé, il devrait apparaître et lors du défilement il se charge progressivement.

Espérons que cela peut être réalisé et merci d'avance pour toute aide!

Répondre

3

Je vais supposer que vous obtenez le JSON des éléments d'un seul appel de service Web ou quelque chose.

Si tel est le cas, effectuez l'analyse de votre requête et JSON dans un AsyncTask. Avoir votre mise en œuvre de doInBackground() appelez publishProgress() avec chaque élément. Ayez votre implémentation de onProgressUpdate() appelez add() sur un ArrayAdapter (sur un ArrayList<>) pour ajouter l'élément au ListView. Here is a sample project démontrant la technique.

+0

Merci beaucoup! Son implémenté maintenant! – Curtain

Questions connexes