List에 개체를 저장하기 위해 ItemHolder라는 클래스를 사용하고 있습니다. 동적으로 나는 약간을 더한다. 특정 시점에서 새로운 항목을 추가하려면 항목 (모두)을 지울 필요가 있습니다. 목록에서 항목을 가져 오려고하면 IndexOutOfBoundException이 발생합니다.Kotlin arrayList - 목록을 다시 쓸 수 없습니다.
내부 ItemHolder
var itemList : ArrayList<Item> = arrayListOf()
다른 클래스에서 초기화에 :
itemHolder.itemList = arrayListOf()
그리고 나중에 같은 클래스 :
itemHolder.itemList.add(position, database.getRandomData())
다음
내가 사용하는 코드입니다
및
itemHolder.getItem(position)
문제는 내가 처음 클래스를 사용할 때 잘 동작하지만 두 번째 시간은 예외를 던졌습니다.
FATAL EXCEPTION: main
Process: studio.monk.rq, PID: 2812
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:411)
at studio.monk.rq.common.ItemHolder.getItem(ItemHolder.kt:9)
at studio.monk.rq.fragments.MainFragment$onCreateView$vpPageChangeListener$1.onPageSelected(MainFragment.kt:44)
at studio.monk.rq.fragments.MainFragment$onCreateView$1.run(MainFragment.kt:51)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
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)
Kotlin 목록은 변경할 수 없습니다. 'mutableListOf'를 사용하십시오. –
@RachitMishra 아무 관계가 없습니다. 이것은 Java의 표준 ArrayList입니다. –
흠! 네, 나쁘다! 예외를 게시 할 수 있습니까? –