Je suis nouveau à la programmation Android. Je me demande combien d'articles une liste de liste peut-on stocker? Je cherche dans les docs mais ils ne parlent pas de cela. Et si je mettais beaucoup d'éléments (peut-être 10k) dans une liste de liste, cela affectera-t-il la performance? P>
acclamations, Mk. P>
5 Réponses :
Vous avez une limite de mémoire (qui est spécifique à un périphérique). Tant que vous n'épargnez pas votre limite de mémoire, vous pouvez stocker autant d'articles que vous le souhaitez. Il y a des outils ADT que vous pouvez utiliser pour surveiller la quantité de mémoire que votre application utilise à tout moment. P>
La liste de liste est virtualisée dans Android. Pratiquement parlant, cela signifie qu'il n'y a pas de limite réelle pour le nombre d'éléments à l'intérieur. Vous pouvez mettre des millions de lignes dans la liste et cela allouera uniquement la mémoire pour les personnes actuellement visibles (ou quelques autres sommets). P>
Consultez les dizaines de tutoriels concernant la rédaction d'une classe d'adaptateur personnalisée pour une vision de l'adaptateur (ListView étend cela). Découvrez également la session Google I / O 2010 sur ListViews; C'est vraiment utile: ici p>
Nous gardons ces éléments 10K dans une arraylist pour l'adaptateur de liste. Que cela conduit à un problème de mémoire?
Cela dépend entièrement de la quantité de mémoire que chacun de ces articles consomme et de la quantité d'espace de tas les dispositifs que vous ciblez. Cela dit, vous avez probablement besoin d'un mécanisme de fenêtrage avec des chiffres d'objets de cette ampleur.
J'ai créé une liste de réception et utilisé INTEGER.MAX_Value comme numéro renvoyé à l'adaptateur pour le nombre d'éléments de la liste. Cela n'a eu aucun effet sur la performance de la listeVoir même s'il tienait environ 2 milliards d'articles. P>
Je pense que 10k fonctionnera: p p>
Consultez ma réponse ici pour voir en détail ce que je veux dire: Comment Créez une liste de liste fermée (circulaire)? P>
Il n'y a pas de limite que la liste de ListView n'entraîne que des éléments lorsqu'ils entrent en compte, et ne se soucie donc que des données pour la liste de liste pour rendre l'élément (bien qu'il ait besoin de connaître la quantité d'éléments pour rendre correctement la barre de défilement correctement. ) p>
La vidéo Google io est vraiment idéale pour apprendre à propos de listeView http://www.youtube.com/watch?v=WDBM6WVEO70 P>
Cela dit, je demanderais si vous devriez charger que beaucoup, comme clairement, l'utilisateur ne peut pas les regarder tous et faire défiler une liste de réception avec ce nombre d'articles sera très fastidieux. Si c'était moi, je poserais quelques questions: p>
Plus sur ListView http://www.softwarepassion.com/android-series- Custom-ListView-items-and-adaptateurs / http://developer.android.com/guide/topics/ui/binding.html http://www.androidguys.com/2008/07/ 14 / FANCY-LISTVIEWS-PARTIE-ONE / P>
INTEGER.MAX_VALUE CODE> Étant donné que la plupart de ses fonctions se casseront lorsqu'elles s'appuient sur
INT POSITION CODE>. P>
Je vous recommanderais que vous devez avoir à lire ce i> article A > b>