заполнить строку списка просмотра из более чем одной строки базы данных - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть просмотр списка, и я хотел бы заполнить строку несколькими вычислениями, выполненными для нескольких таблиц базы данных. Строки лебедки содержат идентификатор строки в виде столбца (группы).

Так, например, в одной из моих таблиц базы данных есть три строки, у всех лебедок есть уникальный идентификатор строки для одного столбца, а также другой столбец (группа), который имеет одинаковое значение для всех строк, что позволяет их группировать вместе.

То, что я хотел бы сделать, - это навести курсор на каждую строку, имеющую одинаковое значение в группе столбцов, и сделать несколько вещей в каждой строке, например сложение, минус, вычитание и т. Д., А затем добавить результат из каждой строки в значение, которое я затем могу прикрепить к представлению списка.

Как мне это сделать?

1 Ответ

0 голосов
/ 14 сентября 2011

Вы можете поместить результаты в 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...