J'ai une base de données avec environ 12000 enregistrements que je veux charger dans un ListView. J'utilise BaseAdapter. Lorsque je charge des éléments dans ListView, cela prend tellement de temps.
Y at-il un moyen de réduire ce temps, par exemple j'ai vu une application qui ne charge qu'un nombre limité d'éléments jusqu'à ce que la barre de défilement atteigne la fin de ListView, puis il charge à nouveau plus d'éléments.chargement d'une grande base de données dans la vue liste
1
A
Répondre
1
Cela peut être utile, un ListView
avec charge bouton Plus:
http://www.androidhive.info/2012/03/android-listview-with-load-more-button/
Vous pouvez également jeter un coup d'oeil ici:
0
Vous devez définir onScrollListener dans votre liste et garder une trace de la visibilité des articles et du décalage. Je vous montre un exemple ici:
// Adapter for the custom list
adapter = new Adapter(this, activityList);
setListAdapter(adapter);
registerForContextMenu(getListView());
getListView().setOnScrollListener(new OnScrollListener(){
public void onScroll(AbsListView lw, final int firstVisibleItem,
final int visibleItemCount, final int totalItemCount) {
switch(lw.getId()) {
case android.R.id.list:
// Make your calculation stuff here. You have all your
// needed info from the parameters of this function.
// Sample calculation to determine if the last
// item is fully visible.
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount) {
// Last item is fully visible.
Log.i("a", "last item fully visible...");
try {
if(offset > 0){
int newLimit;
int oldOffset = offset;
if(offset >= limit){
newLimit = limit;
offset = offset - limit;
}
else{
newLimit = length;
offset = 0;
}
for (int i=0; i < newLimit; i++)
{
JSONObject item = jFeed.getJSONObject(i + length - oldOffset);
// Pulling items from the array
// Get list info
String sInfo = item.getString(TAG_INFO);
Log.i(MainActivity.class.getName(), "Info: " + sInfo);
// Populate the dynamic custom list
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_INFO, sInfo);
activityList.add(map);
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(scrollState == 0)
Log.i("a", "scrolling stopped...");
}
});
Questions connexes
- 1. Comment afficher une grande liste dans la vue sans utiliser le découpage de base de données?
- 2. Chargement d'une grande quantité de données à partir de la base de données Sqlite dans Android
- 3. Comment faire défiler la grande base de données sans énormes temps de chargement et une grande utilisation de RAM
- 4. vue de la liste Android de base de données
- 5. Datagrid chargement grande quantité de données
- 6. Chargement efficace d'une grande quantité de données dans un fragment
- 7. grande base de données sqlite dans l'application android
- 8. chargement des données de réponse dans la vue Web Titanium
- 9. Chargement de la base de données iPhone
- 10. Chargement des données dans la base de données distante
- 11. Chargement des données dans la base de données mysql parallèlement
- 12. ASP.NET MVC: chargement des images de la base de données et affichage de leur vue
- 13. Chargement des données de la base de données en vue détaillée
- 14. Chargement de la base de données?
- 15. Android chargement de grandes données dans la liste affichage
- 16. Alternative à une grande base de données
- 17. Grande base de données d'analyse réactif (MYSQL)
- 18. Grande base de données 500 millions d'enregistrements
- 19. apachesolr autocomplete sur grande base de données
- 20. Insérer dans la vue dans la base de données h2
- 21. vue de la base de données
- 22. Un bon moyen de stocker une grande liste dans une base de données
- 23. Chargement d'une liste d'articles de la base de données dans une classe partielle
- 24. WPF Liaison des données communes de la base de données à une vue de liste
- 25. L'indicateur d'activité n'apparaît pas lors du chargement d'une grande quantité de données depuis la base de données sqlite
- 26. Chargement de vidage SQL dans la base de données Oracle
- 27. Chargement de la plist dans les données de base
- 28. Répétition de données dans la vue de liste android
- 29. problème lors du chargement des données stockées dans la base de données en vue de la table
- 30. Chargement des données Android comme dans la liste déroulante Manière
fixer une limite de votre requête comme vous avez dit http://stackoverflow.com/questions/1407442/android-sqlite-and-huge-data-sets – tyczj