Comment limiter les éléments de la liste afficher dans la vue liste par 10 et suivant 10after cliquant sur le bouton suivant
j'ai une listview avec 100 éléments et je veux afficher des 10 premiers articles et sur le clic du bouton suivant j'ai pour afficher les 10 prochaines ie.,de 11 à 20, j'ai le code pour obtenir les 10 premiers éléments
public int getCount() {
return 10;
}
mais comment obtenir 10 prochaines seuls articles et ainsi de suite.
toute idée
Regardez cet exemple: pastebin.com/UmjBqpsP
stackoverflow.com/questions/1080811/android-endless-list androidhive.info/2012/03/android-listview-with-load-more-button
dois-je utiliser seulement une listview et aussi il a pour afficher le prochain 19 seul pas de 1 à 10
L'appel de l'adaptateur de nouveau avec le new arraylist qui contient le jeu de données suivant.
comment puis-je obtenir les 10 prochaines éléments de la
stackoverflow.com/questions/1080811/android-endless-list androidhive.info/2012/03/android-listview-with-load-more-button
dois-je utiliser seulement une listview et aussi il a pour afficher le prochain 19 seul pas de 1 à 10
L'appel de l'adaptateur de nouveau avec le new arraylist qui contient le jeu de données suivant.
comment puis-je obtenir les 10 prochaines éléments de la
OriginalL'auteur saran | 2013-02-14
Vous devez vous connecter pour publier un commentaire.
Une façon de le faire est,
1) Ne pas remplir votre liste de tableaux avec toutes les données. Au lieu de les garder dans une autre liste de tableaux (
al1
) et utiliser une ArrayList (al2
), un maximum de 10 valeurs à utiliser avec votre BaseAdapter.2) Initialement,
3) Garder le BaseAdapter comme il est, mais le changement
à
Ce n'est pas un must, mais c'est une bonne pratique. Maintenant, vous serez en montrant seulement 10 éléments parce que c'est tout vous êtes de passage à la carte. Aussi écrire une fonction publique dans votre BaseAdatper classe pour définir la
data
variable.4) Sur le prochain événement clic du bouton obtenir les 10 prochaines éléments de
al1
et d'attribuer à laal2
. Utilisation de la fonction publique que vous avez écrit à l'écrituredata
avecal2
.5) BaseAdapter a une méthode appelée notifyDataSetChanged , de l'appeler. Ce que cela fait est de dire que l'adaptateur d'actualisation de haut en bas. Puisque vous avez
data
plus écrit avec de nouvelles données lors de l'actualisation se produit, vous serez en mesure de voir les nouvelles données. C'est tout.Je ne pense pas que ça va être difficile pour vous de venir avec un moyen de garder une trace de l'index, à qui dans
al1
vous êtes en cours d'affichage. 🙂Je ne suis pas sûr de ce que vous demandez. Demandez-vous comment obtenir les valeurs à partir d'un indice ou comment garder une trace de la prochaine index vous devez saisir des données à partir de
al1
?oui comment l'obtenir à partir d'al1[0] al1[9]
// class level variable currIndex = 0; onNextButtonClick() { for(var i = currIndex; i < 10; i++) { // have a condition to check al1.get(i) is not going out of bounds al2.add(al1.get(i)); currIndex++; } }
grâce logique est corect mais depuis im en utilisant ArrayList<Produit> je m obtenir certains d'erreur
OriginalL'auteur JanithaR
Si vous avez 100 points, puis il suffit de prendre les 10 premiers éléments de votre carte, et lorsque l'utilisateur appuie sur la prochaine, la prochaine 10, et ainsi de suite.
EDIT: Sur demande pour le code, je peux fournir un exemple simple sur la façon de faire de la pagination.
En regardant l'exemple ci-dessus, étant donné le nombre d'éléments et le choix d'une taille de page, vous pouvez calculer le nombre de pages dont vous avez besoin, vous pouvez ensuite sélectionner une sous-liste à partir de votre liste de tableaux. Chaque fois que l'utilisateur appuie de nouveau sur la prochaine, incrémenter le currentPage et d'actualisation de la carte avec un nouveau sous-liste.
Ok, mais vous devez d'abord poster ce code que vous avez, utilisez-vous une liste de tableau ou quelque chose d'autre pour votre source de données?
je suis en utilisant la liste de tableaux pour stocker les données et de les afficher et de slao à l'aide de l'adaptateur de classe qui s'étend BaseAdapter
ce code générant exception s'il y a 12 enregistrement après for (int i = 0; i <nbpages ; i++) { int de sortie = i+1; Liste<ModelDetail> splitData = arrayDetail.sous-liste(currentPage, pageSize); monmodèle.ajouter(splitData); }
OriginalL'auteur Ian Warwick