如何使用Rxjava2在Room数据库中的Textview上显示Flowable数据

问题描述 投票:0回答:1

DAO.class:

@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();

我已将查询设置为Flowable,其想法是访问那些Flowable返回类型数据并将其显示在textview上。

java android rx-java2 android-room
1个回答
0
投票

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

将返回可流动对象,您需要在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
                    }
            );
© www.soinside.com 2019 - 2024. All rights reserved.