9

我在我的 Android 应用程序中成功使用了 OrmLite。我正在将我的应用程序移动到新的 CursorLoader 逻辑,我想知道如何在没有 ContentProvider 的情况下将 Ormlite 与 CursorLoader 一起使用。

不可能吗?

4

1 回答 1

4

我认为最好的解决方案是实现 CursorLoader 的子类,并在 loadInBackground() 中从 ORM 获取和返回游标。就我而言,它是这样的

@Override
public Cursor loadInBackground() {
    ...
    Dao<Account, String> dao = mHelper.getDao();
    QueryBuilder<Account, String> qb = dao.queryBuilder();                    
    CloseableIterator<Account> iterator = dao.iterator(qb.prepare());
    try {
        AndroidDatabaseResults results =
        (AndroidDatabaseResults)iterator.getRawResults();
        cursor = results.getRawCursor();               
    }
    catch(Exception ex){                    
        ex.printStackTrace();
    }
    ...
    return cursor;
}

比你可以像其他加载器一样使用这个加载器。您可以在此处查看带有自定义 AsyncTaskLoader 的完整示例:示例

于 2013-11-06T12:37:37.090 回答