Android ArrayList 的 IndexOutOfBoundsException [重复]

2024-05-01

我遇到了一个非常烦人的问题,一些代码抛出 IndexOutOfBoundsException,我真的不明白为什么。 logcat 指向以下代码的“addTimetableItem”,我们将对此进行更多解释:

if(sortedFridayTimes.size()>0){
    insertDay("Friday");
    for(int i=1; i<sortedFridayTimes.size()+1;i++){
        addTimetableItem(sortedFridayTimes.get(i));
    }
}

“sortedFridayTimes”是一个 ArrayList,其中包含我自己的“时间表条目”对象,我已经将其排序。首先检查大小以查看是否有任何对象,如果有,则运行“insertDay”,为标题创建一个新的文本视图并将其添加到布局中(这很好......)。 在 for 循环内部,想法是将数组列表中的所有对象添加到布局中。现在我知道“addTimetableItem”代码可以像我已经测试过的那样工作,但我的问题是我似乎无法从数组列表中获取最后一个对象。如果我声明 for 循环仅运行 for

"i<sortedFridayTimes.size()" 

然后程序运行正常,但我没有得到数组列表中我知道存在的最后一个条目,因为我已经调试并观察了我的变量。添加如上所示的“+1”后,我现在得到 IndexOutOfBoundsException,我真的不知道为什么。正如我所说,我已经调试过,并且知道我试图指向的数组列表中存在一个条目,但它只是崩溃了。如果需要,我可以提供更多代码,但是有人有什么想法吗?


您应该接受@Tim 或@Graham 的答案,这只是一个附录。他们对你的看法是正确的size()+1越过数组的末尾。

如果您在使用索引正确获取列表中的所有内容时遇到困难,您还可以尝试使用 for-each 循环(取决于您所使用的 Android SDK 的版本)。我假设sortedFridayTimes是一个类的列表TimetableItem因为你没有指定。

So this:

if(sortedFridayTimes.size()>0){
    insertDay("Friday");
    for(int i=1; i<sortedFridayTimes.size()+1;i++){
        addTimetableItem(sortedFridayTimes.get(i));
    }
}

就变成这样了:

if(!sortedFridayTimes.isEmtpy()){
    insertDay("Friday");
    for(TimetimeItem item : sortedFridayTimes){
        addTimetableItem(item);
    }
}

如果你实际上不需要使用的话,会更干净一些i任何地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ArrayList 的 IndexOutOfBoundsException [重复] 的相关文章

随机推荐

  • 如何禁用 django-rest-framework 的管理风格可浏览界面?

    我在用django rest framework http django rest framework org 它提供了一个很棒的 Django 管理风格的可浏览的自文档 API 但任何人都可以访问这些页面并使用该界面添加数据 POST 我
  • 如何使用 Material-ui@next TextField 错误道具

    我想使用 Material UI Next 文本字段error props link https material ui next com api text field textfield 道具类型为boolean 之前版本的 Materi
  • 将日期添加到日历热图 R

    I m plotting a calender heat map using Paul Bleicher s calenderHeat R code https raw githubusercontent com iascchen VisH
  • 我可以使用 DataContract 序列化程序序列化 Dictionary 吗?

    我计划构建一个 WCF 服务 返回序列化为 JSON 的通用字典对象 不幸的是 序列化失败 因为对象可能总是不同的 KnownTypes 没有帮助 因为属性类型是 Dictionary 而且我不能说 KnownType 因为类可能总是不同
  • 在 .NET 中可以将数组或列表作为属性返回吗?

    我正在阅读 MSDN 上的一些文档 了解有关某些内容是否应该作为属性或方法实现的注意事项 我特别遇到了一条规则 对此我有疑问 如果 操作返回一个数组 请使用方法 而不是属性 页面在这里 在属性和方法之间进行选择 https msdn mic
  • 使用 serde 通过数值作为类型标识符对 json 进行反序列化

    我对 Rust 很陌生 并且有 OOP 背景 所以 也许我误解了一些 Rust 基础知识 我想用 serde 解析固定的 json 结构 该结构代表不同的消息类型之一 每条消息都有一个数字type属性来区分它 各个消息类型的确切结构大多不同
  • 仅隐藏输入字段的内容

    我有一个与输入字段重叠的跨度 当您在输入字段中键入内容时 它会更新其内容 尽管我将跨度完美地定位在输入文本上 但您仍然可以看到文本更加粗体并且字母更粗 field nr 1 with span nr 2 without 我尝试隐藏整个输入字
  • 如何在 git log 中查看提交的 git bisect 状态?

    我正在做 git bisect 到目前为止我发现了一些好的和坏的提交 我可以通过运行来确认git bisect log 但是 如果我为我的分支运行 git loggit log graph decorate full origin mast
  • Windows API 代码包 - ShellFile 不生成 PDF 位图

    使用之前堆栈溢出问题中的代码 System Drawing Bitmap image ShellFile f ShellFile FromFilePath fileLocation image f Thumbnail ExtraLargeB
  • 如何在 Postgres 中对包含语义版本的列进行排序

    有没有办法高效存储https semver org https semver orgPostgres 中的版本字符串 然后执行最新查询 例如假设列的值为 1 1 0 1 0 0 1 2 0 1 0 1 rc 1 B001 我想排序并获取最新
  • Socket IO聊天例子很慢

    我是 Node js 和 Socket IO 的新手 我想尝试一下解释的示例 https socket io get started chat https socket io get started chat 我做了我必须做的一切 它起作用
  • 不同 Perl 安装造成的混乱

    我尝试升级 Perl 却把我的电脑搞得一团糟 我目前运行的是 RHEL6 5 64 位 事情是这样的 我安装了 perl 5 10 1 并且运行良好 这是安装好的 我可以从百胜看到它 我想安装 Padre 一个 Perl IDE 但这至少需
  • 删除查询字符串参数

    Is there any way to remove query string parameters from url in azure api management Thanks in advance 是的 您可以通过在发布者门户的操作屏
  • 角度锚标记单击的元素 ID 未显示

    我正在尝试获取单击的锚元素的 id 这是我的 HTML div class list group col md 4 a href class list group item img src book image alt p strong P
  • 如何在android文本视图的任意一端插入文本?

    是否可以有一个文本视图 其中在文本视图的最左侧包含一些文本 在文本视图的最右侧包含一些文本 例如 我想要一个应该像这样显示的文本视图 文字 a 可以使用单个 TextView 只需将文本放入 HTML 格式即可 例如
  • Firebase 动态链接无法获取参数

    我正在我的应用程序中处理邀请 我希望用户推荐其他人 推荐人将在他们推荐的人注册后获得奖励 我正在关注这个firebase 邀请教程 https firebase google com docs dynamic links use cases
  • 有没有办法运行查询并检查聚合数据而无需再次重新运行查询?

    在决定枚举 LINQ 查询的结果集之前 我想查看查询结果计数 可能还有其他聚合数据 几乎每个 LINQ 示例都会立即枚举 foreach 循环中的结果 但我想检查计数以确定是否需要循环每个结果 有没有办法运行查询并检查聚合数据而无需再次重新
  • jQuery 绑定 ajax:成功无法在 Rails 3 应用程序中为新创建的(ajax)项目工作

    编辑这篇文章是因为我发现问题实际上在于rails无法绑定到ajax success函数 使用导轨3 2 3 感谢您花时间阅读并尝试提供帮助 我在 ajax success 删除项目上添加一个简单的淡出功能 如下所示 document rea
  • 在所有设备上使用 jquery 垂直对齐?

    我发现在不更改其他元素布局的情况下垂直对齐页面上的某些元素是有问题的 这个问题在移动设备上更加严重 如此多的屏幕尺寸 分辨率 纵向 横向 var x window innerHeight myDiv height myDiv css mar
  • Android ArrayList 的 IndexOutOfBoundsException [重复]

    这个问题在这里已经有答案了 我遇到了一个非常烦人的问题 一些代码抛出 IndexOutOfBoundsException 我真的不明白为什么 logcat 指向以下代码的 addTimetableItem 我们将对此进行更多解释 if so