2

当我试图从数组列表中获取值时,出现以下错误。我的示例代码如下。测试是我的数组列表的名称

字符串 s = test.get(1);

04-05 11:51:42.525: E/AndroidRuntime(901): java.lang.IndexOutOfBoundsException: Invalid location 1, size is 1
04-05 11:51:42.525: E/AndroidRuntime(901):  at java.util.ArrayList.get(ArrayList.java:341)

) 04-05 11:51:42.525: E/AndroidRuntime(901): 在 android.app.Activity.onMenuItemSelected(Activity.java:2170)

4

5 回答 5

2

您的字符串数组的大小为 1,这意味着它只有一个字符串且为 0。您想从字符串数组中得到什么?我认为你想要的代码是

if(test.size() >=1)
   String s = test.get(0);//magical numbers are evil by the way the good book told me so

请不要认为这是非常糟糕的做法,您应该真正发布更多代码,以便我们知道您为什么需要该数组的第一个或第二个字符串。

于 2012-04-05T06:28:38.760 回答
2

Invalid location 1, size is 1表示 ArrayList 以 index[0] 开头。如果您使用get(1),您将收到第二个条目。

于 2012-04-05T06:29:55.423 回答
2

只需test.size()在您的情况下检查它的 1 这就是使用的原因String s = test.get(0);

总是先检查size of your listor array's length。然后根据它获取值。请记住,所有数组和列表始终以 0 开头,在这种情况下,最后一个元素始终是列表的 size() - 1。

于 2012-04-05T06:30:15.123 回答
0

您的 ArrayList 大小为 1,因此其位置将为 0

试试这个代码

String s= test.get(0);
于 2012-04-05T06:28:49.403 回答
0

首先,您的数组列表大小是您可以使用 test.size(); 获得的大小。

所以现在我们都知道数组索引从零开始,你可以获取 test.get(0); 检索 arraylist 中的第一个元素,如果您尝试获取 test.get(1) 的下一个元素,您将获得 IndexOutBound Exception...

于 2012-04-05T06:39:02.207 回答