retrofitApiService = retrofit.create(RetrofitApiService.class);
}
}
四、实现我们的功能
4.1 创建MainViewModel
首先是创建我们的MainViewModel,并添加,加载banner接口。(Repository数据层,也可以说是model层,放在后一篇)如下:
public class MainViewModel extends BaseViewModel {
public MainViewModel(@NonNull Application application) {
super(application);
}
@Override
protected void onCleared() {
super.onCleared();
}
public MutableLiveData<List> getBanners(){
//因为用到LiveData,我觉得都不需要切换到主线程了。LiveData可以帮我们做
//调用接口,返回我们的MutableLiveData<List>
final MutableLiveData<List> liveData = new MutableLiveData<>();
RetrofitManager.getInstance().getApiService().getBanner()
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<ResponModel<List>>() {
@Override
public void accept(ResponModel<List> listResponModel) throws Exception {
liveData.postValue(listResponModel.getData());
}
}, new Consumer() {
@Override
public void accept(Throwable throwable) throws Exception {
}
});
return liveData;
}
}
4.2 MainActivity里
- 首先把xml改成我们的DataBinding布局
- 添加一个按钮,点击去请求我们的接口
- 增加第三方Banner去展示我们的数据
xml如下:
<com.youth.banner.Banner
android:id=“@+id/banner”
android:layout_width=“match_parent”
android:layout_height=“180dp”
/>
MainActivity继承我们的BaseActivity,并指明我们的 ViewModel 和DataBinding。
public class MainActivity extends BaseActivity<MainViewModel, ActivityMainBinding> {
@Override
protected int get