【问题标题】:IndexOutOfBoundsException not making sense to meIndexOutOfBoundsException 对我没有意义
【发布时间】:2013-08-12 17:02:15
【问题描述】:

我有一个 IndexOutOfBoundsException,但我正在使用 finish() 保护调用,它应该退出 Android 中的 Activity!我应该使用 else 语句吗?

if (mIndex >= mQidList.size()) { 
  closeDB();
  finish();
}
mQidList.get(mIndex);

【问题讨论】:

  • >= 只做这个 >
  • 调用finish()不能代表后面的代码不能执行;您可以在完成()之后添加“返回”;
  • 以上两个都可能需要。

标签: android android-activity indexoutofboundsexception


【解决方案1】:

进行以下更改:

if (mIndex >= mQidList.size()) { 
  closeDB();
  finish();

  return;
} 
mQidList.get(mIndex);

当条件为真时,这意味着已达到大小限制,因此访问/尝试从超出该限制的任何索引中获取数据将导致IndexOutOfBoundsException

在你的情况下,当调用完成时,活动被破坏,但代码以自上而下的模式执行,直到通过从被调用的方法返回来删除堆栈中的所有方法调用条目,这就是为什么在完成后,mQidList.get(mIndex);执行导致此异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多