需求:mvp实现

  • activity_details
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="match_parent"        android:layout_height="40dp"        android:background="#ff3660"        android:gravity="center"        android:text="商品详情"        android:textColor="#ffffff"        android:textSize="25sp" />    <ImageView        android:id="@+id/iv"        android:layout_width="match_parent"        android:layout_height="400dp" />    <TextView        android:id="@+id/tvBargainPrice"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="10dp"        android:layout_marginTop="10dp" />    <TextView        android:id="@+id/tvPrice"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <View        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1">View>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="40dp">        <TextView            android:id="@+id/tvCart"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="#33000000"            android:gravity="center"            android:text="购物车" />        <TextView            android:id="@+id/tvAddCart"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="#33000000"            android:gravity="center"            android:text="加入购物车" />    LinearLayout>LinearLayout>

view层

  • DetailsActivity
public class DetailsActivity extends AppCompatActivity implements IDetailsListener, View.OnClickListener {    private DetailsShopPresenter detailsPresenter;    private ImageView mIv;    private TextView mTvBargainPrice;    private TextView mTvPrice;    private TextView mTvCart;    private TextView mTvAddCart;    private DetailsAddPresenter addCartPresenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_details);        initView();        detailsPresenter = new DetailsShopPresenter(this);        addCartPresenter = new DetailsAddPresenter(this);        detailsPresenter.getProductDetail();    }    @Override    protected void onDestroy() {        super.onDestroy();        detailsPresenter.dettach();        addCartPresenter.dettach();    }    @Override    public void show(DetailsShopBean detailsBean) {        String images = detailsBean.getData().getImages();        String[] split = images.split("\\|");        Glide.with(this).load(split[0]).into(mIv);        TextPaint paint = mTvBargainPrice.getPaint();        paint.setFlags(Paint.STRIKE_THRU_TEXT_FLAG);        mTvBargainPrice.setText("原价:" + detailsBean.getData().getBargainPrice());        mTvPrice.setText("优惠价:" + detailsBean.getData().getPrice());    }    @Override    public void show(String str) {        Toast.makeText(DetailsActivity.this, str, Toast.LENGTH_SHORT).show();    }    private void initView() {        mIv = (ImageView) findViewById(R.id.iv);        mTvBargainPrice = (TextView) findViewById(R.id.tvBargainPrice);        mTvPrice = (TextView) findViewById(R.id.tvPrice);        mTvCart = (TextView) findViewById(R.id.tvCart);        mTvAddCart = (TextView) findViewById(R.id.tvAddCart);        mTvCart.setOnClickListener(this);        mTvAddCart.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            default:                break;            case R.id.tvCart:                Intent intent = new Intent(DetailsActivity.this, SecondActivity.class);                startActivity(intent);                break;            case R.id.tvAddCart:                addCartPresenter.addCart();                break;        }    }
    • IDetailsListener
public interface IDetailsListener {    void show(DetailsShopBean detailsBean);    void show(String str);}

presenter层

    • DetailsShopPresenter
// 购物车public class DetailsShopPresenter {    private IDetailsListener iMainListener;    private DetailsService detailsService;    public DetailsShopPresenter(IDetailsListener iMainListener) {        this.iMainListener = iMainListener;        detailsService = new DetailsModel();    }    public void dettach() {        iMainListener = null;    }    public void getProductDetail() {        Map params = new HashMap<>();        params.put("pid", "71");        detailsService.getProductDetail(params, new OnNetListener() {            @Override            public void onSuccess(DetailsShopBean detailsBean) {                if (iMainListener != null) {                    iMainListener.show(detailsBean);                }            }            @Override            public void onFailure(Exception e) {            }        });    }}
    • DetailsAddPresenter
// 加入购物车public class DetailsAddPresenter {    private IDetailsListener iMainListener;    private DetailsAddService addCartService;    public DetailsAddPresenter(IDetailsListener iMainListener) {        this.iMainListener = iMainListener;        addCartService = new DetailsAddModel();    }    public void dettach() {        iMainListener = null;    }    public void addCart() {        Map params = new HashMap<>();        params.put("pid", "71");        params.put("uid", "39");        addCartService.addCart(params, new OnNetListener() {            @Override            public void onSuccess(DetailsAddBean addCartBean) {                if (iMainListener != null) {                    iMainListener.show(addCartBean.getCode().equals("0") ? "添加成功了" : "添加失败了");                }            }            @Override            public void onFailure(Exception e) {            }        });    }

model层

  • DetailsAddService
public interface DetailsAddService {    void addCart(Map params, OnNetListener onNetListener);}
  • DetailsAddModel
public class DetailsAddModel implements DetailsAddService {    private Handler handler = new Handler(Looper.getMainLooper());    @Override    public void addCart(Map params, final OnNetListener onNetListener) {        OkHttpUtils.getOkHttpUtils().doPost(Api.str1, params, new Callback() {            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String string = response.body().string();                final DetailsAddBean addCartBean = new Gson().fromJson(string, DetailsAddBean.class);                handler.post(new Runnable() {                    @Override                    public void run() {                        onNetListener.onSuccess(addCartBean);                    }                });            }        });    }
  • DetailsService
public interface DetailsService {    void getProductDetail(Map params, OnNetListener onNetListener);}
  • DetailsModel
public class DetailsModel implements DetailsService {    private Handler handler = new Handler(Looper.getMainLooper());    @Override    public void getProductDetail(Map params, final OnNetListener onNetListener) {        OkHttpUtils.getOkHttpUtils().doPost(Api.str1, params, new Callback() {            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String string = response.body().string();                final DetailsShopBean detailsBean = new Gson().fromJson(string, DetailsShopBean.class);                handler.post(new Runnable() {                    @Override                    public void run() {                        onNetListener.onSuccess(detailsBean);                    }                });            }        });    }}

bean包

  • DetailsAddBean
public class DetailsAddBean {    private String msg;    private String code;    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }}
  • DetailsShopBean
public class DetailsShopBean {    private String msg;    private SellerBean seller;    private String code;    private DataBean data;    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public SellerBean getSeller() {        return seller;    }    public void setSeller(SellerBean seller) {        this.seller = seller;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public DataBean getData() {        return data;    }    public void setData(DataBean data) {        this.data = data;    }    public static class SellerBean {        private String description;        private String icon;        private String name;        private int productNums;        private double score;        private int sellerid;        public String getDescription() {            return description;        }        public void setDescription(String description) {            this.description = description;        }        public String getIcon() {            return icon;        }        public void setIcon(String icon) {            this.icon = icon;        }        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        public int getProductNums() {            return productNums;        }        public void setProductNums(int productNums) {            this.productNums = productNums;        }        public double getScore() {            return score;        }        public void setScore(double score) {            this.score = score;        }        public int getSellerid() {            return sellerid;        }        public void setSellerid(int sellerid) {            this.sellerid = sellerid;        }    }    public static class DataBean {        private double bargainPrice;        private String createtime;        private String detailUrl;        private String images;        private int itemtype;        private int pid;        private double price;        private int pscid;        private int salenum;        private int sellerid;        private String subhead;        private String title;        public double getBargainPrice() {            return bargainPrice;        }        public void setBargainPrice(double bargainPrice) {            this.bargainPrice = bargainPrice;        }        public String getCreatetime() {            return createtime;        }        public void setCreatetime(String createtime) {            this.createtime = createtime;        }        public String getDetailUrl() {            return detailUrl;        }        public void setDetailUrl(String detailUrl) {            this.detailUrl = detailUrl;        }        public String getImages() {            return images;        }        public void setImages(String images) {            this.images = images;        }        public int getItemtype() {            return itemtype;        }        public void setItemtype(int itemtype) {            this.itemtype = itemtype;        }        public int getPid() {            return pid;        }        public void setPid(int pid) {            this.pid = pid;        }        public double getPrice() {            return price;        }        public void setPrice(double price) {            this.price = price;        }        public int getPscid() {            return pscid;        }        public void setPscid(int pscid) {            this.pscid = pscid;        }        public int getSalenum() {            return salenum;        }        public void setSalenum(int salenum) {            this.salenum = salenum;        }        public int getSellerid() {            return sellerid;        }        public void setSellerid(int sellerid) {            this.sellerid = sellerid;        }        public String getSubhead() {            return subhead;        }        public void setSubhead(String subhead) {            this.subhead = subhead;        }        public String getTitle() {            return title;        }        public void setTitle(String title) {            this.title = title;        }    }

更多相关文章

  1. Android动态添加TextView
  2. android RadioButton 点击时候出现点击声音的效果
  3. android 亮屏及屏幕解锁代码
  4. Android(安卓)EdtiText 添加表情
  5. 为ListActivity 添加Button
  6. Android窗口机制(一)——Window,PhoneWindow,DecorView理解
  7. Android【防抖操作的工具类】
  8. Android中给Activity添加返回键
  9. android 按钮按下时改变字体颜色

随机推荐

  1. ListView 实现阻尼回弹效果 并去除边缘阴
  2. android中如何实现连续点击返回键退出整
  3. android位移动画的两种实现方式
  4. 利用SQLChiper对Android(安卓)SQLite数据
  5. Android(安卓)SDK代理服务器解决国内不能
  6. Android(安卓)ProgressDialog工具类
  7. Android(安卓)基础知识
  8. 线性布局 LinearLayout
  9. CTS 和 GMS
  10. Android的语言设置(一)