2012-10-05 81 views
0

這是我在DBAdapter類中的獲取ID函數: 我想要獲取所有ID並在a中顯示列表吐司消息,不知道我要去哪裏錯了。想要從數據庫中獲取ID列表(這些ID不是SQLite數據庫中的自動分配ID)

public Cursor fetchAllIDs() { 

     return mDb.query(DATABASE_TABLE0, new String[] {IDno1}, null, null, null, null, null); 
    } 

這是我的功能,我打電話按鈕點擊,我想我的烤麪包充滿所有的ID。

private void fillData() { 
     // Get all of the IDs from the database 
      Cursor c = DBHelper.fetchAllIDs(); 
      startManagingCursor(c); 

      String[] from = new String[] {DBAdapter.IDno1 }; 
      Toast.makeText(getApplicationContext(), ""+from, Toast.LENGTH_LONG).show(); 
} 
+0

你能告訴我們你遇到什麼錯誤嗎? –

+0

我沒有得到確切的ID號吐司消息顯示類似於:[Ljava.lang.String,@ 4058 ... –

回答

0

首先,你是返回一個Cursor但你從來不使用這個Cursor的信息。

其次,無論如何您都不能將String[]顯示爲字符串。您必須遍歷String[]並逐個顯示值。

你想是這樣的:

private void fillData() { 
    Cursor c = DBHelper.fetchAllIDs(); 
    List<String> idList = new ArrayList<String>(); 
    if (c.moveToFirst()) { 
     do { 
      idList.add(c.getString(c.getColumnIndexOrThrow(IDno1))); 
      Toast.makeText(getApplicationContext(), "" + idList.get(idList.size()-1), Toast.LENGTH_LONG).show(); 
     } while (c.moveToNext()); 
    } 
} 

編輯:固定getLong()getString()

+0

這是有見地的,啊我怎麼會錯過!但現在的問題是,我得到一個錯誤: idList.add(c.getLong(c.getColumnIndexOrThrow(IDno1)));它會在「IDno1」字段中顯示錯誤。我必須提供引號嗎? –

+0

哦,你的「IDno1」字段包含字符串嗎?它應該是'getString()',而不是'getLong()'。 – UgglyNoodle

+0

我不知道你在哪裏定義了'IDno1'。也許它應該是'DBHelper.IDno1',但你應該能夠弄清楚。 – UgglyNoodle