2011-09-14 78 views
0

我有一個列表視圖,我想在多個數據庫表中進行多個計算來填充一行行絞車將列id作爲列(組)。從多個數據庫行填充列表視圖行

因此,例如,我的數據庫表中的一個具有三排所有絞車具有唯一的行ID爲一個coloumn,也具有允許他們所有行的值相同的另一列(組)組合在一起。

我想要做的是將一個遊標傳遞給在列組中具有相同值的每一行,並在每行上做一些事情,如加,減,減等,然後將每行的結果到一個值,然後我可以附加到列表視圖。

我該如何去做這件事?

回答

0

您可以將結果放入Array,然後在每個項目上執行您想要的操作。然後你使用一個arrayAdapter來放入物品。

public String[][] getResultSetAsArray(Cursor cursor) { 

int numberOfColumns = cursor.getColumnCount(); 
int numberOfRows = cursor.getCount(); 

String [][] resultSetAsArray = new String[numberOfColumns][numberOfRows]; 

for (int currentColumn = 0; currentColumn < numberOfColumns; currentColumn++) 
{ 
    cursor.moveToFirst(); 
    for (int currentRow = 0; currentRow < numberOfRows; currentRow++) 
    { 
    resultSetAsArray[currentColumn][currentRow] = cursor.getString(currentColumn); 
    cursor.moveToNext(); 
    } 
} 
return resultSetAsArray; 
} 

此方法提供一個光標向後移動的二維陣列的所有結果。如果只有一列,則只需使用該方法,並將[0]放在一個數組中即可。

例子:

String table = tablename; 
String[] columns = {column1, column2}; 
String orderBy = columnNameToOrder; 

Cursor cursor = db.query(table, columns, null, null, null, null, orderBy); 
String[] column1Values = dbRetrieval.getResultSetAsArray(tabLabelCursor)[0]; 
String[] column2Values = dbRetrieval.getResultSetAsArray(tabLabelCursor)[1]; 
String[][] values = dbRetrieval.getResultSetAsArray(tabLabelCursor); // all the database values in a two-dimensional array. 
+0

所以我如何得到每行的結果?以及我如何從這個數組? – Mazz

+0

看看我的編輯:)我認爲List將是一個更好的解決方案,但mayby可以從這裏開始。 –

+0

感謝這看起來像我想要的,但我不完全確定我在哪裏做每行的計算?因此,例如,將數據庫表格廣告3列中的一行排列在一起,然後找到結果,然後對於第2行發生相同的情況。然後,我希望將兩者的結果添加到列表視圖中。 – Mazz