package adapter;
import android.annotation.TargetApi;
import android.os.Build;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.example.lxy.yiyuangou.R;
import java.util.ArrayList;
import java.util.List;
import vo.HotProduct;
/** * Created by 栾先生 on 2016/5/11. */ public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ItemViewHolder> {
private int image[] = {R.drawable.home_btn_buy, R.drawable.home_btn_new, R.drawable.home_btn_show, R.drawable.home_btn_show, R.drawable.home_btn_show, R.drawable.home_btn_show};
//HotProduct是一个JavaBean类
private List<HotProduct> datas;
private OnItemClickListener mOnItemClickListener;
public ListAdapter() {
datas = new ArrayList<>();
for (int i = 1; i <= 6; i++) {
HotProduct hp = new HotProduct("价值:¥500" + i, "500", "1000", "500");
datas.add(hp);
}
}
/** * 自定义viewholder */ class ItemViewHolder extends RecyclerView.ViewHolder {
ImageView iv;
ProgressBar pb;
TextView money, yi, zong, sheng;
public ItemViewHolder(View v) {
super(v);
iv = (ImageView) v.findViewById(R.id.ren_iamge);
yi = (TextView) v.findViewById(R.id.ren_yican);
zong = (TextView) v.findViewById(R.id.ren_zong);
sheng = (TextView) v.findViewById(R.id.ren_sheng);
money = (TextView) v.findViewById(R.id.ren_money);
pb = (ProgressBar) v.findViewById(R.id.ren_pb);
}
}
@Override
public ListAdapter.ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//这么添加布局,item中的marchparent将会失效
// ItemViewHolder v = new ItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.renqi_item, null));
// 这么做为自适应的item 随着item的大小变化而变化
ItemViewHolder v = new ItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.renqi_item, parent, false));
return v;
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
@Override
public void onBindViewHolder(final ListAdapter.ItemViewHolder holder, int position) {
ItemViewHolder vh = (ItemViewHolder) holder;
vh.iv.setImageResource(image[position]);
vh.money.setText(datas.get(position).getMoney());
vh.yi.setText(datas.get(position).getYicanyu());
vh.zong.setText(datas.get(position).getZong());
vh.sheng.setText(datas.get(position).getSheng());
if (mOnItemClickListener != null) {
/** * 这里加了判断,itemViewHolder.itemView.hasOnClickListeners() * 目的是减少对象的创建,如果已经为view设置了click监听事件,就不用重复设置了 * 不然每次调用onBindViewHolder方法,都会创建两个监听事件对象,增加了内存的开销 */ if (!holder.itemView.hasOnClickListeners()) {
// Log.e("ListAdapter", "setOnClickListener");
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getPosition();
mOnItemClickListener.onItemClick(v, pos);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int pos = holder.getPosition();
mOnItemClickListener.onItemLongClick(v, pos);
return true;
}
});
}
}
}
@Override
public int getItemCount() {
return image.length;
}
public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {
this.mOnItemClickListener = mOnItemClickListener;
}
/** * 处理item的点击事件和长按事件 */ public interface OnItemClickListener {
public void onItemClick(View view, int position);
public void onItemLongClick(View view, int position);
}
}