有没有什么办法,如何获得一个查询的光标,我正在用ORMLite Dao对象处理?Android游标与ORMLite在CursorAdapter中使用
回答
ORMLite现在支持next()
,previous()
,moveRelative(offset)
,...在CloseableIterator
class方法。这应该允许您随意移动底层的Cursor
对象。
它还支持以下DAO游标的方法:
dao.mapSelectStarRow(databaseResults)
返回从查询数据库结果select *
最新一行。有了这个,你可以改变光标的位置(例如),然后获取当前对象。dao.getSelectStarRowMapper()
提供一个映射器,您可以使用它映射Dao外部的对象。
当你与ORMLite建立自己的查询,您可以使用QueryBuilder
对象。 queryBuilder.prepare()
返回由DAO中的各种方法使用的PreparedQuery
。您可以拨打dao.iterator(preparedQuery)
,这将返回一个CloseableIterator
,用于遍历结果。有一个iterator.getRawResults()
可以访问DatabaseResults
类。在Android下,可将其转换为AndroidDatabaseResults
,其上有一个getCursor()
方法以返回Android Cursor
。
类似下面的代码:
// 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();
}
这是一个有点复杂,但具有淡水河谷背后同行去这个对象是由数据库抽象类隐藏你绝对。
如果您的意思是getHelper()
方法来达到道创建等方法,你只需要从OrmLiteBaseActivity<YourDBHelper>
继承,你可以调用它。它看起来某事像这样:
public class YourClass extends OrmLiteBaseActivity<YourDBHelper> {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
getHelper().getDao().queryForAll();
...
}
}
如果你指的是光标来处理数据库操作:我不认为你可以实现这个目标!但我不明白你为什么需要它。 ORMLite几乎具有游标的所有功能。那么你需要什么?
我知道这个,但我需要让Cursor在CursorAdapter中使用它。 – sealskej
您是否尝试过一些来自this的灰色建议?他解释了如何选择一个列作为另一个名称,例如select id为_id。
既然你可以在ormlite中命名你的列,我猜为什么不只是将它们命名为_id,而不是做select作为:)? – AgentKnopf
当然,你可以,但在重命名它们不是一个选项的情况下,你只需使用“as”的sql语法;) –
确实,你有一个点:) – AgentKnopf
如果您在一个活动中,并且不想乱用QueryBuilder,请给出以下结果,这同样有效。
Cursor cursor = getHelper().getReadableDatabase().query(tableName, projection, selection, selectionArgs, groupBy, having, sortOrder)
- 1. 如何在CursorAdapter中使用2个游标?
- 2. 在Android中使用CursorAdapter优化ListView?
- 3. Android:在CursorAdapter中使用微调文本
- 4. Android:如何使用CursorAdapter?
- 5. Android的 - 的CursorAdapter与AlphabetIndexer
- 6. 使用ViewPager与ListFragment和CursorAdapter
- 7. Android使用ViewPagerAdapter中的CursorAdapter填充ListView
- 8. Android中的Cursoradapter listview
- 9. Android重新使用游标
- 10. 与CursorAdapter的ListView不刷新,即使我在Android中使用swapCursor或changeCursor方法
- 11. 如何使游标在Android中变黑
- 12. 在SQL中使用游标
- 13. 在Python中使用游标
- 14. Android Custom CursorAdapter setVisibility
- 15. Android使用自定义CursorAdapter with onContentChanged()
- 16. Android SQlite泄漏问题与CursorAdapter
- 17. 在Android中使用多个查询在游标中
- 18. Android:与CursorAdapter ListActivity不更新即使与请求
- 19. Android CursorAdapter not calling newView
- 20. 如何在我的CursorAdapter中使用ViewHolder?
- 21. 如何使用CursorAdapter?
- 22. 使用游标访问单行android
- 23. 与Android游戏
- 24. android sqlite游标结果与列表NameValuePair
- 25. 如何在游戏中使用游标搜索数据库(sqlite查询)android
- 26. 与游标一起使用AlertBuilder
- 27. Android - 游标已弃用
- 28. 如何根据游标数据在自定义CursorAdapter中使用不同的行布局?
- 29. Android中的空游标
- 30. 游标无法使用游标url?
我如何获得databaseConnection? – max4ever
我已经更改了这个答案,以显示如何在不需要数据库连接的情况下完成此任务。 – Gray
@Gray什么是使用光标来扩大list_item视图的最佳方式?另外,'CursorAdapter'是与OrmLiteBaseListActivity一起使用的最好的东西吗? – theblang