【问题标题】:rxJava how to fetch data from sqlite and showing in recycler viewrxJava 如何从 sqlite 获取数据并在回收器视图中显示
【发布时间】:2016-08-17 09:57:59
【问题描述】:

最近开始在我的一个项目中使用rxJava。有几个演示展示了retrofit 的使用及其用于显示的可观察对象,但有人可以展示一个使用我们自己的数据库执行此操作的示例。

我自己试过了参考:this question

但我无法想出一种方法将所有生成的对象observables 正确组合到一个列表中,该列表可以在适配器内一次性更新。 toList 似乎在第一次运行后终止了observable,因此不能直接使用。

谢谢!

【问题讨论】:

  • 使用sqlbrite 意味着我将无法使用db.insertupdate 等方法。仅支持 rawQuery。我说的对吗?
  • BriteDatabase 类是 SQLiteOpenHelper 的包装器。它有更新/删除等方法。square.github.io/sqlbrite/0.x/sqlbrite/index.html
  • @LordRaydenMK :您想为这个问题提供一个示例解决方案吗(也许使用 sqlbrite)?我会接受它并结束这个问题。谢谢。

标签: sqlite android-recyclerview rx-java rx-android


【解决方案1】:

要使用RxJava 观察对SQLite 数据库的更改,您可以使用SQLBrite

查询表users可以使用:

Observable<Query> users = db.createQuery("users", "SELECT * FROM users");
users.subscribe(new Action1<Query>() {
  @Override public void call(Query query) {
    Cursor cursor = query.run();
    // TODO parse data...
  }
});

只要您订阅,您还将收到更新/插入通知。

代码示例来自github 上的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2017-12-15
    • 1970-01-01
    • 2014-06-19
    相关资源
    最近更新 更多