这是我的数据库中来自android ..
的所有消息的代码片段public List<Message> getAllRow()
{
List<Message> list=new LinkedList<Message>();
SQLiteDatabase db=this.getWritableDatabase();
String RAW_QUERY="SELECT * FROM "+TABLE_NAME;
Cursor cursor=db.rawQuery(RAW_QUERY, null);
Message message=null;
if(cursor.moveToFirst())
{
do
{
message=new Message();
message.setId(cursor.getString(0));
message.setFaculty(cursor.getString(1));
message.setMessage(cursor.getString(2));
list.add(message);
}while(cursor.moveToNext());
}
Log.d("GET ALL ROW ",message.toString());
return list;
}
但是当我在MainActivity中执行命令时,如
List<Message> list =db.getAllRow();
或
db.getAllRow();
只有我在表中插入的最后一项才会在Logcat中显示其他行的内容。?/
答案 0 :(得分:1)
logcat中只有一条消息,因为代码只调用Log.d
一次。
要显示所有项目,您必须在循环内记录每个项目:
Cursor cursor = db.rawQuery(RAW_QUERY, null);
while (cursor.moveToNext()) {
Message message = new Message();
message.setId(cursor.getString(0));
message.setFaculty(cursor.getString(1));
message.setMessage(cursor.getString(2));
list.add(message);
Log.d("get one row ", message.toString());
}
return list;