有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Rxjava2在房间数据库中的Textview上显示可流动数据

道。类别:

@Dao
public interface VisitorDAO {

    @Query("Select * from visitor")
    Flowable<List<Visitor>> getAll();

    @Insert
    Completable Insert(Visitor visitor);    //Using Single or Maybe tells the Database and the mainthread that this operation will be performed on Rxjava.

    @Update
    public void Update(Visitor visitor);

    @Delete
    public void Delete(Visitor visitor);

}

代码:

   @Override
                public void onComplete() {
                    visitorFlowable = database.visitorDAO().getAll();
                    t.setText(visitorFlowable.); //is this the right way????
                    Toast.makeText(Add_Visitors.this, "Insert Successful!", Toast.LENGTH_SHORT).show();

我已经将查询设置为可流动的,目的是访问那些可流动的返回类型数据并将其显示在textview上


共 (1) 个答案

  1. # 1 楼答案

    visitorFlowable = database.visitorDAO().getAll();

    将返回一个flowable,您需要在UI线程上订阅它并更新textView

    database.visitorDAO().getAll()
                    .observeOn(schedulerProviders.ui())
                    .subscribe(
                        list -> {
                            //list is List<Visitor>, use it to update textView
                        },
                        throwable -> {
                            //this block is executed if any exception is thrown
                        }
                );