一,ContsantApi
public class ConstantApi { public final static String BASE_URL="https://www.zhaoapi.cn/"; //首页接口 public final static String HOME_URL="home/getHome"; //分类List展示 public static final String TYPE_URL="product/getCatagory"; //右边分类 public static final String right_URL ="product/getProductCatagory"; //商品详情 public static final String XIANGQING_URL ="product/getProductDetail"; //购物车商品 public static final String SHOPCART_URL ="product/getCarts"; //加入购物车 public static final String JIAGOU_URL ="product/addCart"; //删除购物车 public satic final String DELETE_URL="product/deleteCart";
二,点击为你推荐跳转到详情页面
//点击商品跳转到商品详情页面 myTuiJianAdapter.setOnItemClickListener(new MyTuiJianAdapter.OnItemClickListener() { @Override public void OnItemClick(int position) { Intent it=new Intent(getContext(), XiangQing_Activity.class); int pid = tuijian.get(position).getPid(); it.putExtra("pid",pid+""); startActivity(it); } });
三,XiangQingApi
public interface XiangQingApi { //商品详情 @GET(ConstantApi.XIANGQING_URL) Observable<XiangQingBean> xiangqing(@Query("pid") String pid); //加入购物车 @GET(ConstantApi.JIAGOU_URL) Observable<ShopCartBean_JiaGou> jiagou(@Query("uid")String uid, @Query("pid") String pid); }
四,XiangQingModel
public class XiangQiangModel { public Observable<XiangQingBean> xiangqing(String pid){ return RetrofitManager.getDefault().creat(XiangQingApi.class).xiangqing(pid); } //加入购物车 public Observable<ShopCartBean_JiaGou> jiagou(String uid, String pid){ return RetrofitManager.getDefault().creat(XiangQingApi.class).jiagou(uid,pid); } }
五,XiangQingPresenter
public class XiangQingPresenter extends BasePresenter<XiangQingView> { private XiangQiangModel xiangQiangModel; public XiangQingPresenter(XiangQingView view) { super(view); } public void xiangqingPresenter(String pid){ xiangQiangModel.xiangqing(pid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<XiangQingBean>() { @Override public void onSubscribe(Disposable d) { compositeDisposable.clear(); } @Override public void onNext(XiangQingBean xiangQingBean) { if(view!=null){ view.getSuccess(xiangQingBean); } } @Override public void onError(Throwable e) { if(view!=null){ view.getError(e.toString()); } } @Override public void onComplete() { } }); } //加入购物车 public void shopcartPresenterJiaGou(String uid,String pid){ xiangQiangModel.jiagou(uid,pid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<ShopCartBean_JiaGou>() { @Override public void onSubscribe(Disposable d) { compositeDisposable.clear(); } @Override public void onNext(ShopCartBean_JiaGou shopCartBean_jiaGou) { if(view!=null){ view.getSuccessJiaGou(shopCartBean_jiaGou); } } @Override public void onError(Throwable e) { if(view!=null){ view.getErrorJiaGou(e.toString()); } } @Override public void onComplete() { } }); } @Override protected void initModel() { xiangQiangModel = new XiangQiangModel(); } }
六,XiangQiangActivity
public class XiangQing_Activity extends AppCompatActivity implements XiangQingView, View.OnClickListener { private XBanner xBanner; private TextView tv_title,tv_price; private Button button; private XiangQingPresenter xiangQingPresenter; private int pid; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_xiangqing); initview(); presenterById(); initdata(); } private void initdata() { //接收传过来的值 Intent it=getIntent(); String pid = it.getStringExtra("pid"); xiangQingPresenter.xiangqingPresenter(pid); } private void presenterById() { xiangQingPresenter=new XiangQingPresenter(this); } private void initview() { xBanner = findViewById(R.id.xiangqiang_xbanner); tv_title = findViewById(R.id.xiangqing_tv_title); tv_price=findViewById(R.id.xiangqing_tv_price); button = findViewById(R.id.xiangqing_button); } @Override public void getSuccess(final XiangQingBean xiangQingBean) { String title = xiangQingBean.getData().getTitle(); double price = xiangQingBean.getData().getBargainPrice(); pid = xiangQingBean.getData().getPid(); //设置值 tv_title.setText(title); tv_price.setText("¥:"+price); //图片设置 String[] split = xiangQingBean.getData().getImages().split("\\|"); final List<String> images = Arrays.asList(split); xBanner.setData(images,null); // XBanner适配数据 xBanner.setmAdapter(new XBanner.XBannerAdapter() { @Override public void loadBanner(XBanner banner, Object model, View view, int position) { Glide.with(XiangQing_Activity.this).load(images.get(position)).into((ImageView) view); } }); //点击加入购物车 button.setOnClickListener(this); } @Override public void getError(String e) { } //加入购物车 @Override public void getSuccessJiaGou(ShopCartBean_JiaGou shopCartBean_jiaGou) { String code = shopCartBean_jiaGou.getCode(); if("0".equals(code)){ Toast.makeText(XiangQing_Activity.this,"加购成功",Toast.LENGTH_SHORT).show(); } } @Override public void getErrorJiaGou(String e) { } @Override public void onClick(View v) { switch (v.getId()){ case R.id.xiangqing_button: xiangQingPresenter.shopcartPresenterJiaGou("14474",pid+""); break; } } }
七,XiangQingXml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".mvp.xiangqing.view.activity.XiangQing_Activity"> <com.stx.xhb.xbanner.XBanner android:id="@+id/xiangqiang_xbanner" android:layout_width="match_parent" android:layout_height="500.0dip" app:AutoPlayTime="3000" app:pointsContainerBackground="#44AAAAAA" app:pointsPosition="RIGHT" app:tipTextColor="#FFFFFFFF" app:tipTextSize="16.0sp" /> <TextView android:id="@+id/xiangqing_tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="标题" android:textSize="20dp" /> <TextView android:id="@+id/xiangqing_tv_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="价钱" android:textSize="20dp" android:textColor="#f00" /> <Button android:id="@+id/xiangqing_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="加入购物车" android:textSize="20dp" android:layout_marginTop="80dp" android:background="#f00" /> </LinearLayout>
八,banner xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="130dp"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="match_parent" android:layout_height="130dp" /> </LinearLayout>