虽然我试图从arraylist获取价值,但我得到以下错误。我的示例代码如下.test是我的数组列表的名称
String 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)
答案 0 :(得分: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
请注意,这不是非常糟糕的做法,您应该发布更多代码,以便我们知道您为什么需要该数组的第一个或第二个字符串。
答案 1 :(得分:2)
只需检查您案例中的test.size()
1,这就是为什么使用String s = test.get(0);
始终先检查size of your list
或array's length
。然后根据它获取值。 请记住,所有数组和列表始终以0开头,在这种情况下,最后一个元素始终是列表的大小() - 1。
答案 2 :(得分:1)
Invalid location 1, size is 1
表示ArrayList以index [0]开头。如果您使用get(1)
,您将收到第二个条目。
答案 3 :(得分:0)
您的ArrayList大小为1,因此其位置为0
试试这段代码
String s= test.get(0);
答案 4 :(得分:0)
首先,你的arraylist大小是你可以使用test.size();
得到的所以现在我们都知道数组索引从零开始,你可以获取test.get(0);在arraylist中检索第一个元素,如果你尝试获取test.get(1)的下一个元素,你将获得IndexOutBound Exception ...