2017-06-14 1 views
0

J'ai un problème lorsque j'essaie de supprimer des éléments dans une liste de tableaux. J'ai besoin de mettre des éléments sur d'autres tableaux, puis de supprimer ces éléments du tableau original. Je mets le code ci-dessous:Arrayle de défilement des exceptions lors de la deuxième fois

private void setOrderAnswers(int position) { 
    for (int i = 0; i < 4; i++) { 
     listAnswersAux.add(listAnswers.get((position * 4) + i)); 
    } 

    for (int i = 0; i < 4; i++) { 
     listAnswers.remove((position * 4) + i); 
    } 
} 

L'erreur que j'ai une exception IndexOutOfBounds:

Caused by: java.lang.IndexOutOfBoundsException: Index: 10, Size: 10 

Je ne sais pas pourquoi j'ai cette exception lorsque je tente de supprimer cet index, mais quand je aller à l'index pour copier l'élément, il n'y a pas de problème. Je veux dire, l'index est OK car je peux voir l'élément avant de le supprimer.

Et j'ai toujours l'exception sur Indice = 10, je peux faire toutes ces opérations avant de passer à index = 10 (position = 2).

Quelqu'un peut-il m'aider? Merci beaucoup!

06-14 09:58:58.455 31337-31337/com.prodintec.am_motion E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: com.prodintec.am_motion, PID: 31337 
                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.prodintec.am_motion/com.prodintec.am_motion.QuizActivity}: java.lang.IndexOutOfBoundsException: Index: 10, Size: 10 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                     at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:154) 
                     at android.app.ActivityThread.main(ActivityThread.java:6119) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
                     Caused by: java.lang.IndexOutOfBoundsException: Index: 10, Size: 10 
                     at java.util.ArrayList.get(ArrayList.java:411) 
                     at com.prodintec.am_motion.QuizActivity.setOrderAnswers(QuizActivity.java:201) 
                     at com.prodintec.am_motion.QuizActivity.randomQuestions(QuizActivity.java:168) 
                     at com.prodintec.am_motion.QuizActivity.onCreate(QuizActivity.java:48) 
                     at android.app.Activity.performCreate(Activity.java:6679) 
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)  
                     at android.app.ActivityThread.-wrap12(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)  
                     at android.os.Handler.dispatchMessage(Handler.java:102)  
                     at android.os.Looper.loop(Looper.java:154)  
                     at android.app.ActivityThread.main(ActivityThread.java:6119)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  
+0

Peut-être parce que vous avez supprimé le 10 élément sur la première manche? –

+0

@Imrik pouvez-vous s'il vous plaît dire la taille de votre liste et quel type de liste utilisez-vous? – Jeeva

+0

@imrik IndexOutOfBoundsException - Thrown pour indiquer qu'un index quelconque (tel qu'un tableau, une chaîne ou un vecteur) est hors de portée. selon les docs java. – Jeeva

Répondre

0

essayer cette

private void setOrderAnswers(int position) { 
for (int i = 0; i < 4; i++) { 
    listAnswersAux.add(listAnswers.get((position * 4) + i)); 

    listAnswers.remove((position * 4) + i); 
} 

} 
+0

J'essaie ça et ça casse à nouveau avec la même exception. – Imrik

+0

même exception parce que votre arraylist size –

+0

oui, parce que l'index est 10 et la taille est 10. Mais je ne sais pas pourquoi il fait la première ligne correctement et la seconde pas ... L'index est le même. – Imrik