-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

コードは 1 回しか呼び出さないため、logcat には 1 つのメッセージしかありませ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 に答える