Что касается MatrixCursor , вот пример использования.
Возвращает расшифрованную версию данных ( в данном случае только один столбец, но в полной версии количество столбцов зашифровано ).
public MatrixCursor decyrptedCard(long cardid) {
EncryptDecrypt ed = new EncryptDecrypt(mContext,
LoginActivity.getCurrentUserPassWord(),
MainActivity.mCurrentUserid);
String[] mcsrcolumns = {
DBCardsTableConstants.CARDID.getDBColumnName(),
DBCardsTableConstants.CARDNAMEONCARD.getDBColumnName()
};
MatrixCursor cnvcsr = new MatrixCursor(mcsrcolumns,0);
String whereclause = DBCardsTableConstants.CARDID.getDBColumnName() +
"=?";
String[] whereargs = {Long.toString(cardid)};
Cursor basecsr = db.query(DBCardsTableConstants.CARDS.getDBTableName(),
null,
whereclause,
whereargs,
null,null,null,null);
if (!basecsr.moveToFirst()) {
cnvcsr.addRow(new Object[]{0L,"NOTACARD"});
return cnvcsr;
}
cnvcsr.addRow(new Object[]{
basecsr.getLong(
basecsr.getColumnIndex(
DBCardsTableConstants.CARDID.getDBColumnName()
)),
ed.decrypt(
basecsr.getString(
basecsr.getColumnIndex(
DBCardsTableConstants.CARDNAMEONCARD.getDBColumnName()
)
)
)
});
basecsr.close();
return cnvcsr;
}
Короче говоря, это немного отличается от использования обычного курсора, за исключением того, что вы определяете столбцы при создании экземпляра. Затем можно добавить строки с помощью метода addRow
.