If the list is reddots :
ArrayList<Red> reddots = new ArrayList(); Items are added to it:
class DotListener extends InputListener { @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){ event.getListenerActor().remove(); float xx = event.getListenerActor().getX(); float yy = event.getListenerActor().getY(); int ind = ((int)xx - 46) / 69; if (count % 2 == 0) { Red r = new Red(); r.setSize(30, 30); r.setPosition(xx, yy); r.setColor(Color.RED); reddots.add(ind, r); stage.addActor(r); } else { Blue b = new Blue(); b.setSize(30, 30); b.setPosition(xx, yy); b.setColor(Color.BLUE); stage.addActor(b); } count++; return true; } } Why does the code crash? If you remove reddots.add(ind, r) , it will not crash. But I need to give an index to each point.
Classes Red and Blue are inherited from Dot .
Dot class:
class Dot extends Actor { //invisible @Override public void draw(Batch batch, float parentAlpha) { Color batchColor = batch.getColor(); final float r = batchColor.r; final float g = batchColor.g; final float b = batchColor.b; final float a = batchColor.a; Color dotColor = getColor(); batch.setColor(dotColor.r, dotColor.g, dotColor.b, dotColor.a * parentAlpha); batch.draw(dotimg, getX(), getY(), getWidth(), getHeight()); batch.setColor(r, g, b, a); } } Console Error:
E / AndroidRuntime: FATAL EXCEPTION: GLThread 151 Process: com.mygdx.game, PID: 2941 java.lang.IndexOutOfBoundsException: Index: 9, Size: 0 at java.util.ArrayList.add (ArrayList.java penet57) at com .mygdx.game.MyGdxGame $ DotListener. .notify (Actor.java:182) at com.badlogic.gdx.scenes.scene2d.Actor.fire (Actor.java:147) at com.badlogic.gdx.scenes.scene2d.Stage.touchDown (Stage.java around82 ) at com.badlogic.gdx.backends.android.AndroidInput.processEvents (AndroidInput.java天75) at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame (AndroidGraphics.java 27) at android.opengl.GLSurfaceView GLThread.guardedRun (GLSurfaceView.java:1548) at android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView.java:1259) E / AndroidGraphics: waiting for pause synchronization; assuming deadlock and killing
reddotsrandomlynull? - VladDDotListeneris an internal class. - Regent