-1

这是我的数据库中来自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 中,其他行呢?/

4

1 回答 1

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;
于 2013-10-31T09:26:44.687 回答