Je travaille sur une application qui consiste principalement en une vue de liste. Il est sauvegardé par mon propre adaptateur de matrice personnalisé dont la taille change toutes les 5 secondes. Si je fais défiler l'affichage de la liste lorsque l'adaptateur de tableau passe d'une taille supérieure à une taille inférieure, l'exception est hors limites. Cela a du sens pour moi pourquoi cela se produit (puisque je défile à une position au-delà de la nouvelle taille de tableau), mais je me demandais s'il y avait un bon moyen de le déboguer. Je ne peux pas arriver à une conclusion claire, et je me demandais si je pouvais obtenir de l'aide.Android - Faire défiler ListView conduit à l'exception «Out of Bounds»
mettre à jour l'adaptateur en utilisant la AsyncTask suivante ...
public class myTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
while(isRunning){
myData.clear();
getData();
publishProgress();
SystemClock.sleep(5000);
}
return null;
}
protected void onProgressUpdate(Void...progress){
listAdapter.notifyDataSetChanged();
}
}
myData
est le ArrayList qui prend en charge listAdapter
et getData()
est la fonction qui renseigne myData
avec les informations pertinentes qui seront éventuellement affiché à mon avis la liste .
Existe-t-il un bon moyen de résoudre ce problème?
Cordialement
Avez-vous écoute OnScroll? –
Pourquoi faites-vous défiler jusqu'à une position que le tableau n'a pas? L'adaptateur devrait seulement retourner les éléments que vous avez, non? – dmon
@Nikola, je n'ai pas d'écouteur onScroll, et je pensais juste que je devrais implémenter cela afin d'empêcher l'exception. dmon, Là réside mon problème, hehe. Si l'adaptateur passe d'une taille plus grande à une taille plus petite à un moment donné, je défile à une position supérieure à la taille la plus petite, c'est à ce moment que j'obtiens l'exception hors limites. – digitalmouse12