//Contract
package com.bwei.zonghe_1.di.shoppingcar.contract; import com.bwei.zonghe_1.data.bean.BuyCarBean; /** * Created by 杨柳 on 2018/9/22. */ public interface ShoppingCartContract { //一.1 public interface IView{ //一.2 void BuyCarData(BuyCarBean buyCarBean); } //一.3 public interface IPresenter<IView>{ //一.4 void attachView(IView iView); //一.5 void detachView(IView iView); //一.6 void BuyCartRequestData(); } //一.7 public interface IModel{ //一.8 public interface BuyCartListener{ //一.9 void BuyCart(BuyCarBean buyCartListener); } //一.10(去P层) void BuyCartResponse(BuyCartListener buyCartListener); } }
//model
package com.bwei.zonghe_1.di.shoppingcar.shoppingcartmodel; import com.bwei.zonghe_1.data.bean.BuyCarBean; import com.bwei.zonghe_1.data.service.Contast; import com.bwei.zonghe_1.data.utils.RetrofitUtil; import com.bwei.zonghe_1.di.shoppingcar.contract.ShoppingCartContract; import java.util.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; /** * Created by 杨柳 on 2018/9/22. */ public class ShoppingCartModel implements ShoppingCartContract.IModel { @Override public void BuyCartResponse(final BuyCartListener buyCartListener) { io.reactivex.Observable<BuyCarBean> observable = RetrofitUtil.getInstance().getapiService(Contast.RIGHT_BASE).getCar(""); observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<BuyCarBean>() { @Override public void accept(BuyCarBean buyCarBean) throws Exception { buyCartListener.BuyCart(buyCarBean); } }); } }
//Presenter
package com.bwei.zonghe_1.di.shoppingcar.ShoppingCartPresenter; import com.bwei.zonghe_1.data.bean.BuyCarBean; import com.bwei.zonghe_1.di.shoppingcar.contract.ShoppingCartContract; import com.bwei.zonghe_1.di.shoppingcar.shoppingcartmodel.ShoppingCartModel; import java.lang.ref.WeakReference; /** * Created by 杨柳 on 2018/9/22. */ //二.1继承 public class ShoppingCartPresenter implements ShoppingCartContract.IPresenter<ShoppingCartContract.IView>{ //二.2 ShoppingCartContract.IView iView; private ShoppingCartContract.IModel shoppingCartModel; private WeakReference<ShoppingCartContract.IModel> iModelWeakReference; private WeakReference<ShoppingCartContract.IView> iViewWeakReference; @Override public void attachView(ShoppingCartContract.IView iView) { //二.3 this.iView = iView; //二.4 shoppingCartModel = new ShoppingCartModel(); //二.5 iModelWeakReference = new WeakReference<>(shoppingCartModel); //二.6 iViewWeakReference = new WeakReference<>(iView); } @Override public void detachView(ShoppingCartContract.IView iView) { //二.7 iModelWeakReference.clear(); //二.8 iViewWeakReference.clear(); } @Override public void BuyCartRequestData() { //二.9 shoppingCartModel.BuyCartResponse(new ShoppingCartContract.IModel.BuyCartListener() { @Override public void BuyCart(BuyCarBean buyCartListener) { //二.10 iView.BuyCarData(buyCartListener); } }); } }
//fragment
package com.bwei.zonghe_1.ui.fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.bwei.zonghe_1.R; import com.bwei.zonghe_1.data.bean.BuyCarBean; import com.bwei.zonghe_1.di.shoppingcar.ShoppingCartPresenter.ShoppingCartPresenter; import com.bwei.zonghe_1.di.shoppingcar.contract.ShoppingCartContract; import com.bwei.zonghe_1.ui.adapter.ShoppingCartAdapter; import java.util.ArrayList; import butterknife.Unbinder; /** * Created by 杨柳 on 2018/9/21. */ //四.1继承View public class ShoppingCartFragment extends Fragment implements ShoppingCartContract.IView { private ShoppingCartContract.IPresenter shoppingCartPresenter; Unbinder unbinder; private RecyclerView rl_twoo; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.shoppingcart_layout, container, false); rl_twoo = inflate.findViewById(R.id.rl_twoo); return inflate; } //四.2 @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //四.3 shoppingCartPresenter = new ShoppingCartPresenter(); //四.4 shoppingCartPresenter.attachView(this); //四.5 shoppingCartPresenter.BuyCartRequestData(); } @Override public void BuyCarData(BuyCarBean buyCarBean) { //四.8\ ArrayList<BuyCarBean.DataBean> list = new ArrayList<>(); list.addAll(buyCarBean.getData()); LinearLayoutManager manager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false); rl_twoo.setLayoutManager(manager); ShoppingCartAdapter adapter = new ShoppingCartAdapter(getContext(), list); rl_twoo.setAdapter(adapter); } //四.6 @Override public void onDestroy() { super.onDestroy(); Unbinder unbinder; //四.7 shoppingCartPresenter.detachView(this); } }