游标索引输出 o 边界异常:请求索引 11,大小为 11



每当尝试获取getSelectedCustomerPhone((时,我都会随机遇到一个问题,然后随机出现边界异常中的光标索引。 这段代码有什么问题吗?我找不到错误。

private String getSelectedCustomerPhone() {
myCursor.moveToPosition(selectedCustPosition);
String phone = 
myCursor.getString(myCursor.getColumnIndex("cust_phone"));
if (phone != null) return phone;
return "";
}

似乎selectedCustPosition超出了光标范围 [0, Cursor.getCount(( - 1]。 试着理解为什么会这样。 作为防止崩溃的解决方法,您可以添加检查

if (0 <= selectedCustPosition && selectedCustPosition < myCursor.getCount()) {
myCursor.moveToPosition(selectedCustPosition);
// ...
}

但这只是一个解决方法,更有可能返回不正确的电话号码。更好地理解真正的问题:为什么selectedCustPosition不正确。

最新更新