2014-11-14 52 views
1

熙傢伙,的Android光標奇數和偶數行到MatrixCursor

我得到了2 ListViews,一個用於左側,一個用於右側。不過,我有一個Cursor與值。現在我想從光標中得到偶數行,並把它放在matrixcursor中,以填充左邊的ListView,以及我想填補右邊的機率。

但是,我得到了9列,有沒有反過來把整行放入matrixCursor沒有選擇每一列本身?所以,當有關數據庫的變化或任何東西我不必手動調整列。

也許我可以使用光標而不是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)); 
}