2010-12-29 13 views
0

データベースからリストビューを作成しようとしています。これはコードですDb to ListViewエラー

一覧アクティビティ

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.inbox); 

    DBAdapter db = new DBAdapter(InboxActivity.this); 
    db.open(); 
    long userID = Long.parseLong(MessagingApplication.getUserID()); 

    Cursor inbox = db.readInbox(userID); 
    startManagingCursor(inbox); 

    String[] mails = new String[] { DBAdapter.KEY_NAME }; 

    int[] to = new int[] { R.id.name }; 

    SimpleCursorAdapter inboxmail = new SimpleCursorAdapter(this, 
    R.layout.inbox_list, inbox, mails, to); 

    setListAdapter(inboxmail); 

    db.close(); 
} 

これは、DB

public Cursor readInbox(long toId) throws SQLException { 
    return db.query(TABLE_MAILS, new String[] { ID, KEY_FROM, KEY_TO, 
    KEY_SUB, KEY_BODY, KEY_DATETIME, KEY_READ }, KEY_TO + "=" 
    + toId, null, null, null, null, null); 
} 

私のDBからデータをフェッチするコードである

private static final String CREATE_MAILS = "CREATE TABLE mails (id INTEGER PRIMARY KEY AUTOINCREMENT, pid INTEGER DEFAULT '0', from_id INTEGER, to_id INTEGER, subject TEXT, body TEXT, datetime TEXT, read INTEGER);"; 

エラー:

alt text

http://variable3.com/files/screenshots/2010-12-29_1136.png

答えて

2

列 "_id" は存在しません。 idの前に下線があることに注目してください。あなたのログを見てください、そこに書かれています。

+0

私のID列はIDではありません_IDいいえどこのコードでは_idを使用していますか?それはどこから取得するのか理解していませんか? –

+1

これは必須です。アダプターはそれを必要とします。 "idを_id ..."と選択するか、列名を変更してください。 –

+0

これを上書きする方法があるに違いないと確信しています –