antheadousa
Messages postés2Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention21 juillet 2010
-
21 juil. 2010 à 10:29
antheadousa
Messages postés2Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention21 juillet 2010
-
21 juil. 2010 à 11:11
Bonjour à tous,
J'ai un petit soucis de programmation, j'ai une liste qui contient des images, j'affiche une image de la liste et je souhaiterais qu'en appuyant sur un bouton je fasse défiler les images de ma liste, et que quel que soit la position de mon image dans la liste lorsque j'arrive au bout de la liste je puisse revenir au début, mais je n'arrive pas à le faire...pour le moment j'ai un java.lang.reflect.InvocationTargetException caused by java.lang.IndexOutOfBoundsException donc par le fait que j'arrive à la fin de ma liste...
Le code que j'ai actuellement dans l'action pour le bouton est le suivant :
int currentPositionImage = imagesList.getLevels().indexOf(image);
loadImageItemInContainerPhoto(imagesList.getLevels().get(currentPositionItem+1));
Madvin
Messages postés123Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention26 août 20123 21 juil. 2010 à 10:58
Salut,
Je ne comprends pas toutes les lignes de ton code, mais néanmoins je peux t'aider.
Il te faut tout simplement des tests de cas d'arrêts dans l'incrémentation des variables que tu utilises comme position dans la liste.
Par exemple il ne faut pas faire :
myList.get(currentPositionItem+1)
car cela produit un IndexOutOfBoundException quand currentPositionItem+1 >= myList.size()
Mais il faut plutôt faire quelque chose dans le genre :
int posInMyList = currentPositionItem+1;
// Si le nouvel index que je vais passer en paramètre dans le get dépasse l'index max, alors on le repositionne en début de liste.
if (posInMyList >= myList.size()) {
posInMyList = 0;
}
myList.get(posInMyList); // Ainsi cette ligne de code ne produira plus d'erreur, et après être arrivé en fin de liste, on retourne en début.
Voilà en gros la solution, à toi de l'adapter à ton cas. ;)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 21 juil. 2010 à 10:59
Salut,
Il te faut soit traîter l'exception, soit tester l'index (currentPositionItem en l'occurence) afin de s'assurer qu'il ne dépasse pas la taille de ta liste.
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
antheadousa
Messages postés2Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention21 juillet 2010 21 juil. 2010 à 11:11
Merci beaucoup de vos réponses rapides ^^
J'ai trouvé une solution se rapprochant de la tienne Madvin au lieu de vérifier avec des conditions j'utilise le % (j'ai toujours tendance à oublier cette chose là, ce qui au final dans l'action de mon bouton ça me donne ça comme code et ça marche pas mal :
int currentPositionImage = imagesList.getLevels().indexOf(image);