Как отобразить текучие данные в Textview в базе данных комнат с помощью Rxjava2 - PullRequest
0 голосов
/ 08 марта 2020

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 возвращаемого типа и отобразить их в текстовом представлении.

1 Ответ

0 голосов
/ 22 марта 2020

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

вернет текучий, вам нужно подписать его на UI Thread и обновить 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
                    }
            );
...