"索引越界异常。排列" [英] index out of bounds exception. array

查看:149
本文介绍了"索引越界异常。排列"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我的阵列添加项目到列表视图,但我总是得到一个异常。

下面是我怎么添加项目code:

  items.add(新SectionItem(president));
                对于(int类型的= 0; A< = presList.size(); A ++)
                {
                    字符串名称= presList.get(一);
                    串的companyName = presList.get(A + 1);
                    Log.d(公司名称,公司名称);
                    items.add(新EntryItem(姓名,公司名称));
                }

logcat的输出:

  4月11日至24日:36:44.981:我/的System.out(719):潘国驹博士,世界科技出版公司(董事主席)]
4月11日至24日:36:44.990:D /公司名称:(719):世界科技出版公司(董事主席)
4月11日至24日:36:44.990:D / AndroidRuntime(719):关闭VM
4月11日至24日:36:44.990:W / dalvikvm(719):主题ID = 1:螺纹未捕获的异常(组= 0x409c01f8)退出
4月11日至24日:36:45.010:E / AndroidRuntime(719):致命异常:主要
4月11日至24日:36:45.010:E / AndroidRuntime(719):java.lang.IndexOutOfBoundsException:无效的索引2,大小为2
4月11日至24日:36:45.010:E / AndroidRuntime(719):在java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在java.util.ArrayList.get(ArrayList.java:304)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在com.scba.organization.CouncilList $ LoadAllMembers $ 1.run(CouncilList.java:192)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.app.Activity.runOnUiThread(Activity.java:4170)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在com.scba.organization.CouncilList $ LoadAllMembers.onPostExecute(CouncilList.java:184)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在com.scba.organization.CouncilList $ LoadAllMembers.onPostExecute(CouncilList.java:1)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.os.AsyncTask.finish(AsyncTask.java:602)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.os.AsyncTask.access $ 600(AsyncTask.java:156)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:615)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.os.Handler.dispatchMessage(Handler.java:99)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.os.Looper.loop(Looper.java:137)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在android.app.ActivityThread.main(ActivityThread.java:4424)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在java.lang.reflect.Method.invokeNative(本机方法)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在java.lang.reflect.Method.invoke(Method.java:511)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
4月11日至24日:36:45.010:E / AndroidRuntime(719):在dalvik.system.NativeStart.main(本机方法)


解决方案

使用

 为(int类型的= 0; A< = presList.size() -  1; ++)

 为(int类型的= 0; A< presList.size(); A ++)

而不是

 为(int类型的= 0; A< = presList.size(); A ++)

I am trying to add the items from my array into the listview but i always get an exception.

below is the code of how i add the items:

items.add(new SectionItem("President"));
                for(int a = 0; a <= presList.size(); a++)
                {
                    String name = presList.get(a);
                    String companyName = presList.get(a + 1);
                    Log.d("company name:", companyName);
                    items.add(new EntryItem(name,companyName));
                }

Logcat Output:

11-24 04:36:44.981: I/System.out(719): [潘国驹博士, 世界科技出版公司(董事主席)]
11-24 04:36:44.990: D/company name:(719): 世界科技出版公司(董事主席)
11-24 04:36:44.990: D/AndroidRuntime(719): Shutting down VM
11-24 04:36:44.990: W/dalvikvm(719): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
11-24 04:36:45.010: E/AndroidRuntime(719): FATAL EXCEPTION: main
11-24 04:36:45.010: E/AndroidRuntime(719): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2
11-24 04:36:45.010: E/AndroidRuntime(719):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
11-24 04:36:45.010: E/AndroidRuntime(719):  at java.util.ArrayList.get(ArrayList.java:304)
11-24 04:36:45.010: E/AndroidRuntime(719):  at com.scba.organization.CouncilList$LoadAllMembers$1.run(CouncilList.java:192)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.app.Activity.runOnUiThread(Activity.java:4170)
11-24 04:36:45.010: E/AndroidRuntime(719):  at com.scba.organization.CouncilList$LoadAllMembers.onPostExecute(CouncilList.java:184)
11-24 04:36:45.010: E/AndroidRuntime(719):  at com.scba.organization.CouncilList$LoadAllMembers.onPostExecute(CouncilList.java:1)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.os.AsyncTask.finish(AsyncTask.java:602)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.os.AsyncTask.access$600(AsyncTask.java:156)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.os.Looper.loop(Looper.java:137)
11-24 04:36:45.010: E/AndroidRuntime(719):  at android.app.ActivityThread.main(ActivityThread.java:4424)
11-24 04:36:45.010: E/AndroidRuntime(719):  at java.lang.reflect.Method.invokeNative(Native Method)
11-24 04:36:45.010: E/AndroidRuntime(719):  at java.lang.reflect.Method.invoke(Method.java:511)
11-24 04:36:45.010: E/AndroidRuntime(719):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-24 04:36:45.010: E/AndroidRuntime(719):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-24 04:36:45.010: E/AndroidRuntime(719):  at dalvik.system.NativeStart.main(Native Method)

解决方案

use

for(int a = 0; a <= presList.size()-1; a++)

OR

for(int a = 0; a < presList.size(); a++)

instead of

for(int a = 0; a <= presList.size(); a++)

这篇关于"索引越界异常。排列"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆