我ArrayList在方法中添加了一些数据,当我尝试删除不是第一个的项目时,出现以下错误 07-25 00:39:03.024 28960-28960/murilopereira.brofut E/[HAS CHECK]: 2 07-25 00:39:03.025 28960-28960/murilopereira.brofut E/[CHECK INDEX]: udidjdid 0 84jdkd 107-25 00:39:07.787 28960-29062/murilopereira.brofut D/OpenGLRenderer: endAllActiveAnimators on 0x7f6b86bc00 (MenuPopupWindow$MenuDropDownListView) with handle 0x7f6b8e694007-25 00:39:08.054 28960-28960/murilopereira.brofut E/[HAS CHECK]: 107-25 00:39:08.055 28960-28960/murilopereira.brofut E/[CHECK INDEX]: 84jdkd 007-25 00:39:08.055 28960-28960/murilopereira.brofut D/AndroidRuntime: Shutting down VM07-25 00:39:08.060 28960-28960/murilopereira.brofut E/AndroidRuntime: FATAL EXCEPTION: main Process: murilopereira.brofut, PID: 28960 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.get(ArrayList.java:437) at murilopereira.brofut.Times.deleteTeam(Times.java:203) at murilopereira.brofut.Times.access$100(Times.java:29) at murilopereira.brofut.Times$2.onClick(Times.java:109) at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6592) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769)但是如果我检查数组的大小,那表明一个数字我要删除的代码: public static ArrayList<String> hasKeys = new ArrayList<>(); ... private void deleteTeam(int indexRemove){ Log.e("[HAS CHECK]", hasKeys.size() + ""); for(int i = 0; i < hasKeys.size(); i++){ Log.e("[CHECK INDEX]", hasKeys.get(i)); Log.e("[CHECK INDEX]", i + ""); }}
1 回答
![?](http://img1.sycdn.imooc.com/545863f50001df1702200220-100-100.jpg)
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
发生这种情况是因为您的项目始终添加到index 0
。数组列表的大小1
每次都来自您添加的项目。我不知道你的代码的确切流程。但是,如果您每次都调用以下语句,这似乎是:
m_orders = new ArrayList<Teams>();
这是实例化您的数组列表。
添加回答
举报
0/150
提交
取消