ListDetailsActivity
package com.example.a1512qjd.ui.activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.SpannableString; import android.text.Spanned; import android.text.style.StrikethroughSpan; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.a1512qjd.R; import com.example.a1512qjd.bean.ProductsBean; import com.example.a1512qjd.presenter.AddCartPresenterImp; import com.example.a1512qjd.ui.inter.AddCartView; import com.example.a1512qjd.utils.GlideImageLoader; import com.umeng.socialize.ShareAction; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.UMShareListener; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.media.UMWeb; import com.youth.banner.Banner; import java.util.Arrays; public class ListDetailsActivity extends AppCompatActivity implements View.OnClickListener, AddCartView { private Banner mBanner; private TextView mTvTitle; private TextView mTvPrice; private TextView mTvVipPrice; private ProductsBean.DataBean bean; private ImageView mIvShare; /** * 购物车 */ private TextView mTvShopCard; /** * 加入购物车 */ private TextView mTvAddCard; private AddCartPresenterImp addCartPresenterImp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_details); //获取JavaBean Intent intent = getIntent(); bean = (ProductsBean.DataBean) intent.getSerializableExtra("bean"); initView(); //设置值 setData(); //绑定 addCartPresenterImp = new AddCartPresenterImp(this); } @Override protected void onDestroy() { super.onDestroy(); addCartPresenterImp.detach(); } @Override public void onStop() { super.onStop(); //结束轮播 mBanner.stopAutoPlay(); } /** * 设置值 */ private void setData() { if (bean == null) { return; } //设置图片加载器 mBanner.setImageLoader(new GlideImageLoader()); String[] imgs = bean.getImages().split("\\|"); //设置图片集合 mBanner.setImages(Arrays.asList(imgs)); //banner设置方法全部调用完毕时最后调用 mBanner.start(); mTvTitle.setText(bean.getTitle()); //给原价加横线 SpannableString spannableString = new SpannableString("原价:" + bean.getSalenum()); StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); spannableString.setSpan(strikethroughSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); mTvPrice.setText(spannableString); mTvVipPrice.setText("现价:" + bean.getPrice()); } private void initView() { mBanner = (Banner) findViewById(R.id.banner); mTvTitle = (TextView) findViewById(R.id.tvTitle); mTvPrice = (TextView) findViewById(R.id.tvPrice); mTvVipPrice = (TextView) findViewById(R.id.tvVipPrice); mIvShare = (ImageView) findViewById(R.id.ivShare); mIvShare.setOnClickListener(this); mTvShopCard = (TextView) findViewById(R.id.tvShopCard); mTvShopCard.setOnClickListener(this); mTvAddCard = (TextView) findViewById(R.id.tvAddCard); mTvAddCard.setOnClickListener(this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.ivShare: //分享 UMWeb umWeb = new UMWeb(bean.getDetailUrl()); new ShareAction(ListDetailsActivity.this).withMedia(umWeb).setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN) .setCallback(shareListener).open(); break; case R.id.tvShopCard: //跳转到购物车 Intent intent = new Intent(ListDetailsActivity.this, ShopCartActivity.class); startActivity(intent); break; case R.id.tvAddCard: addCard(); break; } } private void addCard() { //判断用户是否登录 //判断的逻辑是,从SharedPreferences里取uid,如果能取到说明已经登录过,否则跳转到登录页面 SharedPreferences sharedPreferences = getSharedPreferences("user", Context.MODE_PRIVATE); String uid = sharedPreferences.getString("uid", "-1"); if ("-1".equals(uid)) { //跳转到登录页面 Intent intent = new Intent(ListDetailsActivity.this, LoginActivity.class); startActivity(intent); } else { //添加购物车 String token = sharedPreferences.getString("token", ""); addCartPresenterImp.addCart(uid, bean.getPid() + "", token); } } private UMShareListener shareListener = new UMShareListener() { /** * @descrption 分享开始的回调 * @param platform 平台类型 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @descrption 分享成功的回调 * @param platform 平台类型 */ @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(ListDetailsActivity.this, "成功 了", Toast .LENGTH_LONG).show(); } /** * @descrption 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, Throwable t) { Toast.makeText(ListDetailsActivity.this, "失 败" + t.getMessage (), Toast.LENGTH_LONG).show(); } /** * @descrption 分享取消的回调 * @param platform 平台类型 */ @Override public void onCancel(SHARE_MEDIA platform) { Toast.makeText(ListDetailsActivity.this, "取消 了", Toast .LENGTH_LONG).show(); } }; @Override public void showMsg(String msg) { Toast.makeText(ListDetailsActivity.this, msg, Toast.LENGTH_SHORT).show(); }
}
activity_list_details.xml
<?xml version="1.0" encoding="utf-8"?> <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=".ui.activity.ListDetailsActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="#33000000"> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:background="@drawable/leftjiantou"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="商品详情"/> <ImageView android:id="@+id/ivShare" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:background="@drawable/share"/> </RelativeLayout> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"></com.youth.banner.Banner> <TextView android:id="@+id/tvTitle" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/tvPrice" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/tvVipPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff0000"/> <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="50dp" android:orientation="horizontal"> <TextView android:id="@+id/tvShopCard" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="购物车"/> <TextView android:id="@+id/tvAddCard" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="#ff0000" android:gravity="center" android:text="加入购物车"/> </LinearLayout> </LinearLayout>
AddCartModel
package com.example.a1512qjd.model.inter; import com.example.a1512qjd.net.OnNetListener; public interface AddCartModel { void addCart(String uid, String pid, String token, OnNetListener onNetListener); }
AddCartModelImp
package com.example.a1512qjd.model; import com.example.a1512qjd.bean.BaseBean; import com.example.a1512qjd.model.inter.AddCartModel; import com.example.a1512qjd.net.Api; import com.example.a1512qjd.net.OkhttpUtils; import com.example.a1512qjd.net.OnNetListener; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; public class AddCartModelImp implements AddCartModel { @Override public void addCart(String uid, String pid, String token, final OnNetListener onNetListener) { Map<String, String> params = new HashMap<>(); params.put("Uid", uid); params.put("Pid", pid); params.put("Token", token); OkhttpUtils.getInstance().doPost(Api.ADDCART_RUL, params, new OnNetListener() { @Override public void onSuccess(String result) { BaseBean baseBean = new Gson().fromJson(result, BaseBean.class); if ("0".equals(baseBean.getCode())) { onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { onNetListener.onFailed(e); } }); }
}
AddCartView
package com.example.a1512qjd.ui.inter; public interface AddCartView { void showMsg(String msg);
}
AddCartPresenter
package com.example.a1512qjd.presenter.inter; public interface AddCartPresenter { void addCart(String uid, String pid, String token);
}
AddCartPresenterImp
package com.example.a1512qjd.presenter; import com.example.a1512qjd.bean.BaseBean; import com.example.a1512qjd.model.AddCartModelImp; import com.example.a1512qjd.net.OnNetListener; import com.example.a1512qjd.presenter.inter.AddCartPresenter; import com.example.a1512qjd.ui.inter.AddCartView; import com.google.gson.Gson; public class AddCartPresenterImp implements AddCartPresenter { private AddCartView addCartView; private final AddCartModelImp addCartModelImp; public AddCartPresenterImp(AddCartView addCartView) { this.addCartView = addCartView; addCartModelImp = new AddCartModelImp(); } @Override public void addCart(String uid, String pid, String token) { addCartModelImp.addCart(uid, pid, token, new OnNetListener() { @Override public void onSuccess(String result) { if (addCartView != null) { BaseBean baseBean = new Gson().fromJson(result, BaseBean.class); addCartView.showMsg(baseBean.getMsg()); } } @Override public void onFailed(Exception e) { } }); } public void detach() { if (addCartView != null) { addCartView = null; } }
}