Android Cursor奇数行和偶数行进入MatrixCursor

时间:2014-11-14 09:05:57

标签: android listview cursor listview-adapter matrixcursor

嘿,伙计们,

我得到2 ListViews,一个用于左侧,一个用于右侧。但是我有一个Cursor值。现在我想从光标中获取偶数行并将其放在matrixcursor中以填充左ListView并且我想要填充右侧的几率。

然而,我得到了9列,无论如何只是将整行放入matrixCursor而不自行选择每一列?因此,当有关db或其他任何内容发生变化时,我不必手动调整列。

也许我可以使用Cursor而不是MatrixCursor,哪个更好?

1 个答案:

答案 0 :(得分:0)

解决方案:

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));
}