商品分类接口
https://www.zhaoapi.cn/product/getProducts?pscid=1
请求参数:
pscid商品id字段 String类型 必传
返回数据:
见json字符串注册接口
1. 新建Android Studio项目,实现商品分类列表效果
2. 严格实现上图布局效果,屏幕适配页面美观
3. 使用MVP分包明确 避免内存泄漏
4 使用Fresco获取图片 图片路径需截取
5. 使用Retrofit请求商品分类接口
1) Retrofit加载网络数据 添加动态代理
2) RxJava异步处理数据 泛型封装对象
3) 将请求回来的数据使用recyclerview展示
1.依赖
//《Retrofit网络请求依赖》
implementation 'com.squareup.retrofit2:retrofit:2.4.0' compile 'com.squareup.retrofit2:converter-gson:2.4.0' // compile 'com.squareup.retrofit2:retrofit:2.3.0' //《Gson解析依赖》 compile 'com.google.code.gson:gson:2.2.4' //《Fresco图片框架依赖》 compile 'com.facebook.fresco:fresco:0.14.1' //《Recyclerview的依赖》 compile 'com.android.support:recyclerview-v7:26.1.0' //《Butterknife依赖(黄油刀)》 compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' //《RXjava2的适配器》 compile 'com.squareup.retrofit2:adapter-rxjava2:2.4.0' //《Rxjava2》 compile 'io.reactivex.rxjava2:rxjava:2.1.7' compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
2.权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
3.ApiService拼接接口
package com.example.dell.a1511r0418.api; import com.example.dell.a1511r0418.model.MessageBean; import com.example.dell.a1511r0418.model.MyDataBean; import java.util.List; import io.reactivex.Flowable; import retrofit2.http.GET; import retrofit2.http.Query; public interface ApiService { //Flowable:背压 //拼接接口 @GET("product/getProducts") Flowable<MessageBean<List<MyDataBean>>> getData(@Query("pscid")String pscid); }
4.初始化Fresco 设置使用默认设置加载图片
package com.example.dell.a1511r0418.app; import android.app.Application; import com.facebook.drawee.backends.pipeline.Fresco; public class App extends Application{ @Override public void onCreate() { super.onCreate(); //初始化Fresco 设置使用默认设置加载图片 Fresco.initialize(this); } }
5.Retrofit 网络请求框架
package com.example.dell.a1511r0418.utils; import com.example.dell.a1511r0418.api.ApiService; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; //Retrofit 网络请求框架 public class RetrofitUtils { //1创建一个单列模式 private static volatile RetrofitUtils instance; private final Retrofit retrofit; //2创建一个私有的无参构造 private RetrofitUtils(){ //创建Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create())//默认Gson进行解析 .addCallAdapterFactory(RxJava2CallAdapterFactory.create())//使用RxJava2的适配器 .baseUrl(StringUrl.BASE_URL)//接口 .build(); } //4.创建一个静态方法,得到instance 判断是否为空 public static RetrofitUtils getInstance(){ if(