我在墙下。我有一个非常简单的方法
public List<com.fixus.portals.model.Foothold> findAll() {
List<com.fixus.portals.model.Foothold> result = new ArrayList<com.fixus.portals.model.Foothold>();
Cursor cursor = this.db.query(MainHelper.TABLE_FOOTHOLD, FOOTHOLD_FIELDS, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
com.fixus.portals.model.Foothold foothold = this.mapToObject(cursor);
result.add(foothold);
cursor.moveToNext();
}
cursor.close();
return result;
}
它应该返回表中的每条记录,但它返回0(零)。我不知道为什么。我调试了整个过程查询看起来没问题。当我复制被调用的查询并在DB上手动运行它时,有什么好笑的我会收到结果。但是,当我从Android级别执行此操作时,我什么都不返回。我做错了什么?
答案 0 :(得分:1)
将此代码模式用于游标:
public List<com.fixus.portals.model.Foothold> findAll() {
List<com.fixus.portals.model.Foothold> result = new ArrayList<com.fixus.portals.model.Foothold>();
Cursor cursor = this.db.query(MainHelper.TABLE_FOOTHOLD, FOOTHOLD_FIELDS, null, null, null, null, null);
com.fixus.portals.model.Foothold foothold = this.mapToObject(cursor);
if(cursor.moveToFirst()){
do{
result.add(foothold);
}while(cursor.moveToNext());
}else{
//Your code for no data
}
cursor.close();
return result;
}
确保你的桌子不是空的。