package com.txsc.activity; import java.util.HashMap; import java.util.List; import lib.view.ViewUtils; import lib.view.annotation.ViewInject; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; import com.txsc.MyApplication; import com.txsc.NetActivity; import com.txsc.R; import com.txsc.bean.GoodsInfoBean; import com.txsc.bean.GoodsInfoBean.picBean; import com.txsc.bean.ObjNetResultBean; import com.txsc.constants.Url; import com.txsc.utils.AtyUtils; import com.txsc.utils.ImageUtil; import com.txsc.utils.JsonUtils; import com.txsc.utils.LogUtils; import com.txsc.utils.MD5; import com.txsc.utils.SPUtils; import com.txsc.utils.TextUtils; import com.txsc.utils.ToastUtil; import com.txsc.view.CollectPopWindow; import com.txsc.view.CollectPopWindow.OnItem2ClickListener; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; /** * 商品详情 * * @author Admin * */ public class Goods_DetailAty extends NetActivity implements OnItem2ClickListener { private GoodsInfoBean goods_info; @ViewInject(R.id.p2_vpager_goods_detail_pic) private ViewPager vpager; @ViewInject(R.id.p2_img_goods_detail_back) private ImageView imgBack; @ViewInject(R.id.p2_text_goods_detail_name) private TextView textGName; @ViewInject(R.id.p2_text_goods_detail_price) private TextView textGPrice; @ViewInject(R.id.p2_text_goods_detail_number) private TextView textGNum; @ViewInject(R.id.p2_text_goods_detail_integral) private TextView textGInteg; @ViewInject(R.id.p2_tv_to_car) private TextView tv_ToCar; @ViewInject(R.id.put_in) private ImageView textAddCar; @ViewInject(R.id.pop_dark_layout) private View darkView; @ViewInject(R.id.p2_btn_goods_detail_collect) private ImageView btnCollect; @ViewInject(R.id.p2_line_goods_desc) private LinearLayout lineDesc; private CollectPopWindow popWindow; private String good_id; private List<GoodsInfoBean.attrBean> attr_List; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyApplication.getInstance().addActivity(this); setContentView(R.layout.p2_main_goods_detail_layout); ViewUtils.inject(this); textAddCar.setOnClickListener(this); btnCollect.setOnClickListener(this); imgBack.setOnClickListener(this); lineDesc.setOnClickListener(this); tv_ToCar.setOnClickListener(this); good_id = getIntent().getStringExtra("goods_id"); HashMap<String, String> params = new HashMap<String, String>(); params.put("goods_id", good_id); params.put("port_password", MD5.getMD5ofStr(Url.KET + good_id)); asynNet(Url.Goods_Detail, params, 2); } private class ImageAdapter extends PagerAdapter { private LayoutInflater inflater; private List<picBean> mList; ImageAdapter(List<picBean> list) { inflater = LayoutInflater.from(Goods_DetailAty.this); this.mList = list; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getCount() { return goods_info.getGoods_thumb().size(); } @Override public Object instantiateItem(ViewGroup view, int position) { View imageLayout = inflater.inflate(R.layout.item_pager_image, view, false); assert imageLayout != null; ImageView imageView = (ImageView) imageLayout .findViewById(R.id.image); final ProgressBar spinner = (ProgressBar) imageLayout .findViewById(R.id.loading); if (mList.size() != 0) { ImageLoader.getInstance().displayImage( mList.get(position).getPic(), imageView, ImageUtil.getOption(), new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { spinner.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { spinner.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { spinner.setVisibility(View.GONE); } }); } else { ImageUtil.loadImage(imageView, "drawable://" + R.drawable.no_picture); } view.addView(imageLayout, 0); return imageLayout; } @Override public boolean isViewFromObject(View view, Object object) { return view.equals(object); } @Override public void restoreState(Parcelable state, ClassLoader loader) { } @Override public Parcelable saveState() { return null; } } @Override public void failure(int tag) { super.failure(tag); ToastUtil.show(this, "商品可能下架了,刷新后试试", 500); Goods_DetailAty.this.finish(); } @Override public void success(String result, int tag) { LogUtils.log(result); ObjNetResultBean bean = JsonUtils.parseNetResult(result); if (tag == 0) { if (bean.getStatus().getCode() == 200) { ToastUtil.show(this, "已成功添加购物车!", 500); new AlertDialog.Builder(this).setTitle("提醒") .setMessage("已成功加入购物车,还要吗?") .setNegativeButton("继续购买", null) .setPositiveButton("去结算", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AtyUtils.turnToCar(Goods_DetailAty.this); } }).create().show(); } else { ToastUtil.show(this, "添加失败!" + bean.getStatus().getMessage(), 500); } } else if (tag == 1) { if (bean.getStatus().getCode() == 200) { ToastUtil.show(this, "收藏成功!", 500); } else { ToastUtil.show(this, "收藏失败!" + bean.getStatus().getMessage(), 500); } } else if (tag == 2) { if (bean.getStatus().getCode() == 200) { goods_info = JsonUtils.parseGoodsDetail(bean.getBackinfo() .toString()); List<picBean> picList = goods_info.getGoods_thumb(); attr_List = goods_info.getGoods_attr(); vpager.setAdapter(new ImageAdapter(picList)); textGName.setText(goods_info.getGoods_name()); textGPrice.setText(goods_info.getGoods_price() + "元/" + goods_info.getGoods_unit()); textGNum.setText(goods_info.getGoods_sn()); textGInteg.setText(goods_info.getGoods_integral() + "个"); } } } @Override public void onclick(View v) { if (v == textAddCar) { darkView.setVisibility(View.VISIBLE); popWindow = new CollectPopWindow(this, attr_List, darkView); popWindow.setOnItem2ClickListener(this); popWindow.showAsDropDown(v); // popWindow.setOnDismissListener(new OnDissMiss() { // @Override // public void onMiss() { // darkView.setVisibility(View.GONE); // } // }); } else if (v == btnCollect) { if (TextUtils.isBlank(SPUtils.getUid(this))) { ToastUtil.show(this, "抱歉,您还未登录,请登录", 500); Intent intent = new Intent(this, User_LoginAty.class); startActivity(intent); return; } HashMap<String, String> params = new HashMap<String, String>(); params.put("sp_userid", SPUtils.getUid(this)); params.put("sp_goodsid", goods_info.getGoods_id()); params.put("goods_attr_id", goods_info.getGoods_attr().get(0) .getTGoodsPropertyID()); params.put("port_password", MD5.getMD5ofStr(Url.KET + SPUtils.getUid(this))); asynNet(Url.Goods_Collect, params, 1); } else if (v == imgBack) { Goods_DetailAty.this.finish(); } else if (v == lineDesc) { Intent intent = new Intent(this, Goods_DescAty.class); intent.putExtra("desc", goods_info.getGoods_info()); startActivity(intent); } else if (v == tv_ToCar) { AtyUtils.turnToCar(Goods_DetailAty.this); } } @Override public void onClickOKPop(int defaultNum, String attrId) { darkView.setVisibility(View.GONE); if (TextUtils.isBlank(SPUtils.getUid(this))) { ToastUtil.show(this, "抱歉,您还未登录,请登录", 500); Intent intent = new Intent(this, User_LoginAty.class); startActivity(intent); return; } HashMap<String, String> params = new HashMap<String, String>(); params.put("sp_userid", SPUtils.getUid(this)); params.put("sp_goodsid", goods_info.getGoods_id()); params.put("sp_count", defaultNum + ""); params.put("goods_attr_id", attrId); params.put("port_password", MD5.getMD5ofStr(Url.KET + SPUtils.getUid(this))); asynNet(Url.Car_Add, params, 0); } @Override public void onCanclePop() { darkView.setVisibility(View.GONE); } }