我想从一个充满数据的游标中提取一行并将其存储在另一个对象中以供其他用途。
我的代码:
SQLiteDatabase db = dbOpener.getReadableDatabase();
Cursor dataSet = db.query(WPTemplateDB.PRODUCT_TABLE,
null, //all columns
null, //where clause
null, //where clause args
null, null, null);//groupBy, having, orderBy
while (dataSet.moveToNext()){
Product product = new Product(dataSet);
pArray.add(product);
}
我的存储对象:
public Product(Cursor cursor){
productData = cursor;
}
public String getData(String column){
Log.d(column, productData.getColumnIndex(column)+"");
return productData.getString(productData.getColumnIndex(column));
}
现在,我遇到“请求索引 10,大小为 10”的错误。我该怎么办?
最佳答案
不应该使用游标是 Product
对象的构造函数。它会泄漏内存,因为游标在不使用时必须关闭。
您应该从游标读取数据,然后将数据发送到构造函数 Product
,例如:
String productName = cursor.getString(0);// 0 is column name
......
cursor.close();
Product product = new Product(name);
关于android - 如何从游标存储一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672996/