2014-11-14 21 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)); 
}