从sqlite android的光标中获取最后一个值

时间:2016-02-11 07:38:49

标签: android sqlite

光标获取第一个值为this

但是将最后一个值返回为this

从光标获取的代码

    BillInfo getContact(String date) {  
            SQLiteDatabase db = this.getReadableDatabase();  

光标查询

            Cursor cursor = db.query(TABLE_ID, new String[] { KEY_ID,  
                    KEY_NAME, KEY_PRICE, KEY_DATE }, KEY_DATE + "=?",  
                    new String[] { String.valueOf(date) }, null, null, null, null); 

            BillInfo contact = null ;

数组帐单类型

            BillInfo bill[]=null;
            int i=0; 

光标代码

if (  cursor.moveToFirst() )  {

                    bill=new BillInfo[cursor.getCount()];

                    do {


//Since both are in different classes

                        contact = new BillInfo(cursor.getString(0),  cursor.getString(1), cursor.getString(2),cursor.getString(3));  
                        bill[i]=contact;

                    }while(cursor.moveToNext());

                }
                return bill[i];
            }

点击

加载值的代码
    public void Load1(View v){
                date1=date.getText().toString();
                Doubleme d=new Doubleme(this);
                BillInfo s;

Returning the value from get contact

                s= d.getContact(date1);


                info.append( s.toString());

            }

1 个答案:

答案 0 :(得分:0)

看起来,i的值是固定的:

int i=0;

但是在游标迭代循环内部,您每次都使用新的BillInfo引用覆盖bill [i]。难怪为什么这条线:

return bill[i];

获取最后一行而不是第一行。如果你只需要第一行,我建议摆脱while循环。