我想将SimpleCursorAdapter与Spinner一起使用。
我找到了如何返回光标。
QueryBuilder<ChoixPointVerification, Integer> qb = choixPointVerificationDao.queryBuilder();
qb.where().eq(FIELD, id);
PreparedQuery<ChoixPointVerification> preparedQuery = qb.prepare();
AndroidCompiledStatement compiledStatement =
(AndroidCompiledStatement)preparedQuery.compile(db, StatementType.SELECT);
Cursor cursor = compiledStatement.getCursor();
return cursor;
但是Spinner需要一个_id字段,我只有一个带有id字段的对象。我宁愿避免重命名这个领域。
我该如何解决这个案子?我真的需要将id与所有微调器字段相关联。
我想我可以从rawsql发出光标但是我找不到如何使用ormlite。似乎可以使用原始sql创建PreparedQuery。
我还读到,如果我有一个AndroidDatabase对象,我可以发出一个Cursor对象,但是我们如何用ormlite创建一个AndroidDatabase呢?
我真的很开心所有的解决方案
此致
答案 0 :(得分:8)
您可以使用Cursor
从ORMLite获取基础QueryBuilder
对象,而无需诉诸原始查询。看看这个答案:
您可以执行以下代码:
// build your query
QueryBuilder<Foo, String> qb = fooDao.queryBuilder();
qb.where()...;
// when you are done, prepare your query and build an iterator
CloseableIterator<Foo> iterator = dao.iterator(qb.prepare());
try {
// get the raw results which can be cast under Android
AndroidDatabaseResults results =
(AndroidDatabaseResults)iterator.getRawResults();
Cursor cursor = results.getRawCursor();
...
} finally {
iterator.closeQuietly();
}
答案 1 :(得分:4)
我刚刚找到了一个效率高,简单且符合ormlite的解决方案。
我必须使用AndroidDatabase
获得getHelper().getReadableDatabase()
。
然后使用
Cursor cursor = db.query("choixpointverification",
new String[] { "id", "id as _id", "nom" },
"masque = 0 and idPointVerification = " + idPointVerification.toString(),
null, null, null, "tri");