我有一个listview,我想填充一行,在多个数据库表上进行多次计算。行winch将行id作为列(组)。
例如,我的一个数据库表有三行,所有绞盘都有一个coloumn的唯一行id,另一列(group)对所有行都有相同的值,允许它们组合在一起。
我想要做的是将光标传递到列组中具有相同值的每一行,并在每一行上做一些事情,如添加,减去,减去等,然后将每行的结果添加到然后我可以附加到列表视图的值。
我该怎么做?
答案 0 :(得分: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.