android sqlist中遊標下標越界問題解決方案

來源:互聯網
上載者:User

標籤:android   cursorindexoutofboundsexception   越界   查詢   sqlist   

在使用android的sqlist時,出現了以下錯誤

android.database.CursorIndexOutOfBoundsException: Index 14 requested, with a size of 14

經過排除,確定了錯誤位置

錯誤碼為

public ArrayList<receiveContext> query(String table_name,String[] arg){SQLiteDatabase db=getWritableDatabase();Cursor c = db.query(table_name,null,poster+"=?",arg,null,null,updateTime,null);//查詢並獲得遊標ArrayList<receiveContext> l=new ArrayList<receiveContext>();if(c.moveToFirst()){//判斷遊標是否為空白    for(int i=0;i<c.getCount();i++){        c.moveToPosition(i);//正確語句        //c.move(i);  //錯誤語句                String getContext="";        int getStyle = 0;        String getTime="";                getContext= c.getString(c.getColumnIndex(context));        getStyle =c.getInt(c.getColumnIndex(style));        getTime = c.getString(c.getColumnIndex(updateTime));        receiveContext rc=new receiveContext(getContext,getStyle,getTime);        l.add(rc);    }}c.close();db.close();return l;}

這是我寫的一個資料庫查詢的方法,越界原因是使用了方法c.move(i);這個方法我估計(有待考證)應該是當前指標+i,所以會導致越界。正確的方法應該是

c.moveToPosition(i);

這是跳到第i個位置。

本文出自 “萬靈就是我” 部落格,請務必保留此出處http://kinghacker.blog.51cto.com/7767090/1641208

android sqlist中遊標下標越界問題解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.