Android项目:使用Jetpack组件搭建一个基于MVVM的RxAndroid(RxJava)、Retrofit、OkHttp的项目

通过对RxAndroid、Retrofit和OkHttp的学习,用它们整合搭建一个基于MVVM的项目。
使用Android Jetpack组件 Databinding、ViewModel、LiveData、Lifecycle
通过本篇Blog可以学习到如何利用这些框架整合搭建一个项目。

本篇Blog所用源码Github地址:MVVM Demo

下面开始进入正题,本篇以获取公众号列表数据展示为例。文章目录按照Demo项目从数据到业务逻辑处理最后到界面展示。

准备工作

  • 添加依赖
    依赖的版本一定要匹配,不然会出现一些乱七八糟的问题。细节可以看我之前的Blog集成错误

    因为在Retrofit2中使用了JDK8的新特性,所以除了依赖,还要添加支持。

	// Support new features of JDK1.8
    compileOptions {
   
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

	// Android JetPack,也可以分别添加使用具体的某个组件的依赖
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

	// okHttp 3.14
    implementation 'com.squareup.okhttp3:okhttp:3.14.9'
    // Retrofit 2.9
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    // Convert Google Json(Convert the result to Model)
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    // Retrofit CallAdapter convert to RxJava
    implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
    // RxAndroid 3.0
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
  • 声明权限
    <uses-permission android:name="android.permission.INTERNET" />
  • 项目目录
    项目目录

    建好目录后,就可以开工了。

请求数据

该实例以玩Android为数据源。

我们使用OkHttp实现网络请求,Retrofit以接口的形式回调,通过RxAndroid更好的处理业务和展示工作。

  1. 创建接口
    首先,创建公众号列表数据的接口MpService.java,然后声明这个geListData()
	@GET("wxarticle/chapters/json")
    Observable<BaseData<List<MpBean>>> getListData();









    // 也可以使用GET或者POST来请求
    /**
     * Request Buyer Data for GET
     * @param id dateId
     * @return buyer data
     */
    @GET("buyer/date/get")
    Observable<BaseData<Map<String, Map<String, String>>>> getBuyerData(@Query("dateId") String id);

    /**
     * Request Buyer Data for POST
     * @param dateId dateId
     * @return buyer data
     */
    @FormUrlEncoded
    @POST("buyer/date/get")
    Observable<BaseData<Map<String, Map<String, String>>>> postBuyerData(@Field("dateId") String dateId);
  1. 代理对象
    有了接口并不能直接使用,我们需要获取代理对象,在MainModel.java中通过Retrofit的create方法传入接口就可以了。当然,我们要先创建一个Retrofit对象
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值