游标索引输出或fBounds异常:请求索引11,大小为11

时间:2018-10-05 11:41:42

标签: android sqlite cursor

每当尝试获取getSelectedCustomerPhone()时,我都会随机遇到一个问题,然后将出现Bound Exception之外的随机游标索引。 这段代码有什么问题吗?我找不到错误。

private String getSelectedCustomerPhone() {

        myCursor.moveToPosition(selectedCustPosition);

        String phone = 
               myCursor.getString(myCursor.getColumnIndex("cust_phone"));
        if (phone != null) return phone;
        return "";
    }

1 个答案:

答案 0 :(得分:1)

似乎@screens: { small: 320px; medium: 768px; large: 1024px; } @padding: { 0: 0; 10: 1rem; 20: 20rem; 30: 30rem; } @colors: { white: #fff; silver: hsla(0, 0%, 90%, 1); } @responsive-modifiers: true; #config () { .generate(pt, padding, @padding); .generate(py, padding-top, @padding); .generate(text, color, @colors); .generate(background, background-color, @colors); } // Call the mixin #config(); each(@screens, { @media (min-width : @value) { .@{key} when (@responsive-modifiers = true) { #config(); } } }) .generate(@prefix, @property, @list) { each(@list, { &\:@{prefix}-@{key} { @{property}: @value; } }); } 在光标范围[0,Cursor.getCount()-1]之外。尝试了解为什么会发生。 为了防止崩溃,可以添加支票

selectedCustPosition

但这只是一个变通办法,很有可能会返回错误的电话号码。更好地理解一个真正的问题:为什么if (0 <= selectedCustPosition && selectedCustPosition < myCursor.getCount()) { myCursor.moveToPosition(selectedCustPosition); // ... } 不正确。