package com.haicaojie.android.ui.recommend;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.support.v7.widget.RecyclerView;
|
import android.text.Html;
|
import android.text.Spannable;
|
import android.text.SpannableString;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.haicaojie.android.R;
|
import com.lcjian.library.widget.RatioLayout;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.haicaojie.android.entity.TaoBaoGoodsBrief;
|
import com.haicaojie.android.util.VerticalImageSpan;
|
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2017/6/29.
|
*/
|
|
public class SearchResultAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
|
|
private Context mContext;
|
private List<TaoBaoGoodsBrief> wList;//数据
|
private DisplayImageOptions options;
|
private boolean isSearch;
|
|
//自定义监听事件
|
public static interface OnRecyclerViewItemClickListener {
|
void onItemClick(View view);
|
|
void onItemLongClick(View view);
|
}
|
|
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
|
|
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
|
mOnItemClickListener = listener;
|
}
|
|
//适配器初始化
|
public SearchResultAdapter(Context context, List<TaoBaoGoodsBrief> datas, boolean isSearch) {
|
mContext = context;
|
this.wList = datas;
|
this.isSearch = isSearch;
|
this.options = new DisplayImageOptions.Builder()
|
.showImageForEmptyUri(R.drawable.ic_goods_default)
|
.showImageOnFail(R.drawable.ic_goods_default)
|
.showImageOnLoading(R.drawable.ic_goods_default)
|
.resetViewBeforeLoading(true).cacheInMemory(true)
|
.cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY)
|
.considerExifParams(true)
|
.displayer(new FadeInBitmapDisplayer(300)).build();
|
}
|
|
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
//根据item类别加载不同ViewHolder
|
View view = LayoutInflater.from(mContext).inflate(
|
R.layout.item_recommend_gv, parent, false);
|
ViewHolder viewHolder = new ViewHolder(view);
|
|
//给布局设置点击和长点击监听
|
view.setOnClickListener(this);
|
|
return viewHolder;
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
//将数据与item视图进行绑定,如果是MyViewHolder就加载网络图片,如果是MyViewHolder2就显示页数
|
ViewHolder viewHolder = (ViewHolder) holder;
|
viewHolder.ratioLayout.setRatio(1.0f);
|
if (wList.size() <= position)
|
return;
|
final TaoBaoGoodsBrief info = wList.get(position);
|
showImageFace(info.getTitle(), info.getShopType(), viewHolder.tv_name);
|
int shopType = Integer.parseInt(info.getShopType());
|
if (shopType == 1) {//淘宝
|
viewHolder.tv_normal_price.setText("淘宝价:¥" + info.getZkPrice());
|
} else if (shopType == 2) {//天猫
|
viewHolder.tv_normal_price.setText("天猫价:¥" + info.getZkPrice());
|
}
|
// 图片
|
// Glide.with(mContext).load(info.getTaoBaoGoodsBrief().getPictUrl()).placeholder(R.drawable.ic_goods_default).transform(new GlideRoundTransform(mContext)).into(viewHolder.iv_pic);
|
ImageLoader.getInstance().displayImage(info.getPictUrl(), viewHolder.iv_pic, options);
|
|
viewHolder.tv_price.setTextColor(mContext.getResources().getColor(R.color.red_money));
|
viewHolder.tv_favourable.setText(" " + info.getTaoBaoHongBaoInfo().getRate());
|
if (Integer.parseInt(info.getShowType()) == 2) {//红包
|
// viewHolder.tv_coupon_price.setText("¥" + info.getZkPrice());
|
viewHolder.tv_price.setText("¥" + info.getZkPrice());
|
viewHolder.tv_normal_price.setVisibility(View.INVISIBLE);
|
viewHolder.tv_coupon_price.setVisibility(View.GONE);
|
} else if (Integer.parseInt(info.getShowType()) == 1) {
|
viewHolder.tv_price.setText("¥" + info.getQuanPrice());
|
viewHolder.tv_normal_price.setVisibility(View.VISIBLE);
|
viewHolder.tv_coupon_price.setVisibility(View.VISIBLE);
|
viewHolder.tv_coupon_price.setText("¥" + info.getTaoBaoQuanInfo().getCouponAmount());
|
} else {
|
viewHolder.tv_price.setText("¥" + info.getQuanPrice());
|
viewHolder.tv_coupon_price.setVisibility(View.VISIBLE);
|
viewHolder.tv_normal_price.setVisibility(View.VISIBLE);
|
viewHolder.tv_coupon_price.setText("¥" + info.getTaoBaoQuanInfo().getCouponAmount());
|
}
|
viewHolder.tv_sale_num.setText("月销:" + info.getSalesCount());
|
if (isSearch) {
|
viewHolder.ll_shop.setVisibility(View.VISIBLE);
|
viewHolder.tv_shop_name.setText(info.getShopTitle());
|
// ImageLoader.getInstance().displayImage("drawable:\\" + R.drawable.ic_tmall, viewHolder.iv_shop_img);
|
} else {
|
viewHolder.ll_shop.setVisibility(View.GONE);
|
}
|
viewHolder.ll_recommend_gv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// Intent intent = new Intent(mContext, GoodsDetailBrowerActivity.class);
|
Intent intent = new Intent(mContext, GoodsBrowserActivity.class);
|
intent.putExtra("title", info.getTitle());
|
intent.putExtra("url", info.getAuctionUrl());
|
intent.putExtra("id", info.getAuctionId());
|
mContext.startActivity(intent);
|
}
|
});
|
}
|
|
private void showImageFace(String s, String shop, TextView tv) {
|
// 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
|
SpannableString spannableString = null;
|
VerticalImageSpan imageSpan = null;
|
if (Integer.parseInt(shop) == 1) {//淘宝
|
imageSpan = new VerticalImageSpan(mContext, R.drawable.icon);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else if (Integer.parseInt(shop) == 2) {//天猫
|
imageSpan = new VerticalImageSpan(mContext, R.drawable.ic_tmall);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else {
|
spannableString = new SpannableString(Html.fromHtml(s));
|
}
|
// 用ImageSpan对象替换字符
|
spannableString.setSpan(imageSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
tv.setText(spannableString);
|
}
|
|
@Override
|
public int getItemCount() {
|
return wList.size();//获取数据的个数
|
}
|
|
//点击事件回调
|
@Override
|
public void onClick(View v) {
|
if (mOnItemClickListener != null) {
|
mOnItemClickListener.onItemClick(v);
|
}
|
}
|
|
class ViewHolder extends RecyclerView.ViewHolder {
|
TextView tv_name;
|
TextView tv_price;
|
TextView tv_normal_price;
|
TextView tv_red_packet1;
|
TextView tv_coupon_price;
|
TextView tv_shop_name;
|
TextView tv_coupon_condition;
|
LinearLayout ll_coupon;
|
LinearLayout ll_shop;
|
LinearLayout ll_recommend_gv;
|
TextView tv_favourable;//红包,券后价
|
TextView tv_sale_num;
|
ImageView iv_pic;
|
// ImageView iv_shop_img;
|
RatioLayout ratioLayout;
|
|
public ViewHolder(View convertView) {
|
super(convertView);
|
ratioLayout = (RatioLayout) convertView
|
.findViewById(R.id.item_recommend_gv_ral);
|
iv_pic = (ImageView) convertView
|
.findViewById(R.id.iv_movie_cover);
|
// iv_shop_img = (ImageView) convertView
|
// .findViewById(R.id.iv_shop_img);
|
tv_red_packet1 = (TextView) convertView
|
.findViewById(R.id.tv_red_packet1);
|
tv_normal_price = (TextView) convertView
|
.findViewById(R.id.tv_normal_price);
|
tv_shop_name = (TextView) convertView
|
.findViewById(R.id.tv_shop_name);
|
tv_name = (TextView) convertView
|
.findViewById(R.id.tv_movie_title);
|
tv_price = (TextView) convertView.findViewById(R.id.tv_price);
|
tv_coupon_price = (TextView) convertView.findViewById(R.id.tv_coupon_price);
|
tv_coupon_condition = (TextView) convertView.findViewById(R.id.tv_coupon_condition);
|
ll_coupon = (LinearLayout) convertView.findViewById(R.id.ll_coupon);
|
ll_shop = (LinearLayout) convertView.findViewById(R.id.ll_shop);
|
ll_recommend_gv = (LinearLayout) convertView.findViewById(R.id.ll_recommend_gv);
|
tv_favourable = (TextView) convertView.findViewById(R.id.tv_favourable);
|
tv_sale_num = (TextView) convertView.findViewById(R.id.tv_sale_num);
|
}
|
}
|
}
|