因为项目中需要用到购物车,在网上找了很久,一直没有找到一个满意的购物车demo,所以自己花了一天时间,仿写了一个,因为项目中的购物车没有接口,所以购物车的商品信息都是从商品详情哪里得来的,具体步骤如下:
一、获取商品信息添加到sqlite:
这一步我就不详细说了,怎么添加信息到sqlite中,不是很懂的同学可以去我之前写的Android SQLite增删查改哪里查看,有详细代码实现。
### MyAppliaction
public class MyAppliaction extends Application{
public static Context context;
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
### Api
public class Api {
public static final String CART_CHA = "http://www.zhaoapi.cn/";
}
### ApiService 接口
public interface ApiService {
@GET("product/getCarts")
Flowable<CartBean> getCarts(@Query("uid") int uid);
}
### inien OnDataListener 接口
public interface OnDataListener {
void onCartData(CartBean cartBean);
}
### IMolder 接口
public interface IMolder {
void getDataCarts(OnDataListener listener);
}
### MyMolder
public class MyMolder implements IMolder{
@Override
public void getDataCarts(final OnDataListener listener) {
//创建日志拦截器
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.i("TAG","日志信息" + message);
}
});
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
/* .connectTimeout(5000, TimeUnit.SECONDS)
.writeTimeout(5000, TimeUnit.SECONDS)
.readTimeout(5000, TimeUnit.SECONDS)*/
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Api.CART_CHA)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(client)
.build();
//得到代理对象
ApiService apiService = retrofit.create(ApiService.class);
Flowable<CartBean> carts = apiService.getCarts(4243);
carts.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DisposableSubscriber<CartBean>() {
@Override
public void onNext(CartBean cartBean) {
Log.i("TAG","成功");
if (listener != null){
listener.onCartData(cartBean);
}
}
@Override
public void onError(Throwable t) {
Log.i("TAG", t.getMessage());
}
@Override
public void onComplete() {
}
});
}
### IPresenter 接口
public interface IPresenter {
void getCartsP();
}