2011-05-30 26 views
0

在我的應用程序中,我想從數據庫中放入一些項目。我可以看到他們,作爲使用此功能的列表:如何在數組中放入一些項目?

private void fillData() 
{ 
    c = db.fetchListId(listid); 
    startManagingCursor(c); 

    adapter = new SimpleCursorAdapter(this, R.layout.listproduct, c, 
             new String[] { DbAdapter.KEY_ITEM, 
                DbAdapter.KEY_QUANTITY, 
                DbAdapter.KEY_UNITS }, 
             new int[] { R.id.prod1, 
                R.id.prod2, 
                R.id.prod3 } 
            ); 

    setListAdapter(adapter); 
} 

但我不知道如何將它們放入數組中。

任何人都可以幫助我嗎?

+0

你想要與陣列什麼?數據庫列的類型是什麼? – Flo 2011-05-30 15:44:27

+0

你想要什麼樣的陣列?你想將行轉換成對象,並有一個MyObject []數組?或者你想要一個多維的字符串數組?或者是其他東西? – kodi 2011-05-30 15:47:48

+0

我想把這個數組放在EditText中。這將是我想發送的信息,我想看起來像這樣:「洋蔥1公斤,梨2公斤,......」。這是關於我想發送的購物清單。數據庫列是String。 – Gaby 2011-05-30 15:49:11

回答

0

你肯定會通過光標迭代開始:

while(c.moveToNext()){ 
    myString = c.getString(c.getColumnIndex("MyColumnName")); // or somesuch 
    array[x][y][z] = myString; // also somesuch 
} 

不知道更多關於你要如何存儲數據,這是不可能猜你需要超越c.moveToNext()什麼。

UPDATE:

OK,所以你只想將它們聚集成一個字符串。嘗試是這樣的:

String theList=""; 
while(c.moveToNext()){ 
    theList += c.getString(0) + " " + c.getString(1) + c.getString(2) + "\n"; 
} 
+0

謝謝。我試過這樣的東西,它的工作原理。 – Gaby 2011-05-30 17:12:25

1

我想你會喜歡做這樣的事情:

private String[] getItems(<the selection params>) { 
    Cursor c = db.retrieveItems(<the selection params>); 
    String[] items = new String[c.getCount()]; 
    for (int i = 0; c.moveToNext() != null; i++) { 
     String item = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_ITEM)); 
     String quantity = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_QUANTITY)); 
     String units = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_UNITS)); 
     items[i] = item + " " + quantity + units; 
    } 
    c.close(); 
    return items; 
} 

我假定您的數據庫類有一個叫做retrieveItems方法,產生了一些選擇參數,可以以執行適當的查詢。 我還沒有測試過代碼,可能會有一些錯字或小錯誤,但我希望它能指引您找到所需的解決方案。

+0

感謝您的回答。我嘗試了像previuos的答案,它的工作原理,但我認爲這種方法也可以。 – Gaby 2011-05-30 17:14:12

相關問題