2014-11-14 4 views
1

Х ребят,Android Cursor четные и нечетные строки в MatrixCursor

Я получила 2 ListViews, один для левой стороны и один для правой стороны. Однако у меня есть один Cursor со значениями. Теперь я хочу получить четные строки из курсора и поместить это в matrixcursor, чтобы заполнить левый ListView и с шансами, которые я хочу заполнить с правой стороны.

Как бы то ни было, я получил как 9 столбцов, так или иначе просто поставить всю строку в matrixCursor, не выбрав каждый столбец сам по себе? Поэтому, когда что-то меняется в отношении db или чего-либо, мне не нужно вручную настраивать столбцы.

Возможно, я мог бы использовать курсор вместо MatrixCursor, что было бы лучше?

ответ

2

Решение:

MatrixCursor lCursor; 
MatrixCursor rCursor; 
String[] columnNames = new String[mCursor.getColumnCount()]; 
mCursor.moveToFirst(); 
for (int j = 0; j < mCursor.getColumnCount(); j++) { 
    columnNames[j] = mCursor.getColumnName(j); 
} 
lCursor = new MatrixCursor(columnNames); 
rCursor = new MatrixCursor(columnNames); 

if (mCursor.getCount() > 0) { 
    for (int i = 0; i < mCursor.getCount(); i++) { 
     mCursor.moveToPosition(i); 
     if ((i & 1) == 0) { 
      String[] values = new String[mCursor.getColumnCount()]; 
      for (int j = 0; j < mCursor.getColumnCount(); j++) { 
       values[j] = mCursor.getString(j); 
      } 
      lCursor.addRow(values); 
     } else { 
      String[] values = new String[mCursor.getColumnCount()]; 
      for (int j = 0; j < mCursor.getColumnCount(); j++) { 
       values[j] = mCursor.getString(j); 
      } 
      rCursor.addRow(values); 
     } 
    } 
    left.setAdapter(new HomeMenuAdapter(MainActivity.getContext(), 
      lCursor)); 
    right.setAdapter(new HomeMenuAdapter(MainActivity.getContext(), 
      rCursor)); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^