仅从SQLite显示单个项目

时间:2013-10-30 18:16:10

标签: android sqlite

这是我的数据库中来自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中显示其他行的内容。?/

1 个答案:

答案 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;