带有MVVM和翻新的RXjava

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

我想将RxJava与MVVM一起使用,但我不明白为什么它不通过我的Response类来响应CompositeDisposable

我想处理过去的RxJava,但我不知道如何将CompositeDisposable与]链接>

LiveData

...

LiveData
     public
        LiveData <HomeResponse> setMenu() {
            final MutableLiveData <HomeResponse> data = new MutableLiveData <>( );

                compositeDisposable.add(apiRequest.getMenu()
                                                .subscribeOn( Schedulers.io())
                                                .observeOn( AndroidSchedulers.mainThread())
                                                .subscribe( new Consumer <Response<HomeResponse>>() {
                                                    @Override
                                                    public void accept(Response<HomeResponse>
                                                     registrationModelResponse) throws Exception  {

                                                       data.setValue(registrationModelResponse.body());
                                                    }
                                                }));



            return data;
        }

.....响应类:

  public
class HomeResponse {

    @SerializedName("status")
    @Expose
    private String status;
    @SerializedName("totalResults")
    @Expose
    private Integer totalResults;
    @SerializedName("Menu")
    @Expose
    private List <MainMenu> MainMenu = null;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getTotalResults() {
        return totalResults;
    }

    public void setTotalResults(Integer totalResults) {
        this.totalResults = totalResults;
    }

    public List<MainMenu> getMainMenu() {
        return MainMenu;
    }

    public void setAUsers(List<MainMenu> MainMenu) {
        this.MainMenu = MainMenu;
    }
}

.....我的API:

  @GET("getmenu.php")
   Observable<List <HomeResponse>> getMenu();

..........错误听到...

 .subscribe( new Consumer <Response<HomeResponse>>() {
                                                @Override
                                                public void accept(Response<HomeResponse>
                                                 registrationModelResponse) throws Exception  {

                                                   data.setValue(registrationModelResponse.body());
                                                }
                                            }));

enter image description here

我想将RxJava与MVVM一起使用,但我不明白为什么它不对我的Response类响应CompositeDisposable,所以我想对付RxJava,但我不知道如何链接...

android rx-java android-mvvm
1个回答
0
投票

我认为您可能会混淆如何处理LiveData

通常,如果您想从LiveData中获得价值,则您的活动或片段就是需要观察它的对象。像这个例子。

© www.soinside.com 2019 - 2024. All rights reserved.