首先,登陆页面的data方法,接收用户名,密码。把用户的uid,token,存放进SharedPreferences里
@Override public void data(Login login) { String code = login.getCode(); String msg = login.getMsg(); if (code.equals("0")){ String mobile = login.getData().getMobile(); int uid = login.getData().getUid(); String token = login.getData().getToken(); sp = getSharedPreferences("flag", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("mobile", mobile); editor.putInt("uid", uid); editor.putString("token", token); editor.commit(); Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("mobile",mobile); intent.putExtras(bundle); setResult(1,intent); finish(); } Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();然后再购物车页面定义接口字段,给mvp分别加参数
//购物车 @GET("product/getCarts") Observable<ResponseBody> getshop(@Query("uid")int uid,@Query("tooken")String token);在shopFragment接收sp
@Override public void initData(@Nullable Bundle savedInstanceState) { sp = getActivity().getSharedPreferences("flag", Context.MODE_PRIVATE); int uid = sp.getInt("uid", 1); String token = sp.getString("token", ""); mPresenter.getShop(uid,token); EventBus.getDefault().register(this);//注册 }加入购物车
@GET("product/addCart") Observable<AddShopCartBean> addsp(@Query("uid") int uid,@Query("pid")int pid);在详情页面写请求参数:传入一个 uid ,pid C:
public interface xiangqingContract { //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 interface View extends IView { void data(Xiangqing xiangqing); void addData(AddShopCartBean shopCartBean); } //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 interface Model extends IModel { Observable<Xiangqing> requestxiangqing(int pid); Observable<AddShopCartBean> addsp(int uid,int pid); }详情的Activity页面
@Override public void addData(AddShopCartBean shopCartBean) { String code = shopCartBean.getCode(); String msg = shopCartBean.getMsg(); if (code.equals("0")){ Toast.makeText(this, "加购成功", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } } //点击加入购物车 @OnClick(R.id.text_add) public void onViewClicked() { mPresenter.addsp(uid,pid); }