【问题标题】:IndexOutOfBoundsException: Index: 0, Size: 0IndexOutOfBoundsException:索引:0,大小:0
【发布时间】:2020-02-24 06:34:57
【问题描述】:

如何将这个 (Click This Link) 应用到我的应用程序中?谢谢!

原木猫:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.example.workhours.view_hours$1.onSwiped(view_hours.java:65)

代码:

这是发生错误的行:

(line: 65) final String x = listShift.get(viewHolder.getAdapterPosition()).getDate();

附加信息:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{


ArrayList<newNote> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    list = new ArrayList<>();
}

【问题讨论】:

  • 表示您的lifshift 为空,您正在尝试访问不存在的元素。
  • listShift 似乎是一个空列表
  • 我该如何解决这个问题?这就是我所做的: ArrayList list;在 oncreate 方法上我放了“list = new ArrayList();”
  • 谢谢!但似乎我的清单是空的。你知道如何初始化我的列表吗?
  • 你必须把一些数据放到liftShift中。

标签: java android arrays arraylist android-sqlite


【解决方案1】:

以下是处理异常的方法,使用三元运算符:

final String x = listShift.size() < viewHolder.getAdapterPosition()+1 ? null: listShift.get(viewHolder.getAdapterPosition()).getDate();

【讨论】:

  • 谢谢!但似乎我的清单是空的。你知道如何初始化我的列表吗?
  • 谢谢我修好了!我所做的是“listShift = myDb.viewAllHours();”
【解决方案2】:

第一步:打印/检查viewHolder.getAdapterPosition()返回的值

第二步:通过listShift.size()查看List的大小

发生的原因:

  1. viewHolder.getAdapterPosition() 的值
  2. viewHolder.getAdapterPosition() 的值 > listShift.size()
  3. 列表为空

【讨论】:

  • 我做了“listShift.size()”,它返回 0
  • 请问我该如何解决这个问题。我不知道。非常感谢!
  • 谢谢我修好了!我所做的是“listShift = myDb.viewAllHours();”
猜你喜欢
  • 2015-04-15
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多