RecyclerView使用 以及简单多条目

来源:互联网 发布:手机windows主题下载 编辑:程序博客网 时间:2024/06/05 21:01
//**点击事件*/// 
holder.getLayoutPosition(); //=Postiton
final int finalPosition = position;holder.itemView.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        mOnItemClickListener.onClick(finalPosition);    }});holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {    @Override    public boolean onLongClick(View view) {        mOnItemClickListener.onLongClick(finalPosition);        return false;    }});


//接口声明
private OnItemClickListener mOnItemClickListener;
//外界调用public void setMyOnItemListener(OnItemClickListener mOnItemClickListener){    this.mOnItemClickListener=mOnItemClickListener;}

 //点击事件 public interface OnItemClickListener{ //点击事件 void onClick( int position); //长按事件 void onLongClick( int position);}
import android.content.Context;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.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;import bean.ShopBean;import zhoukao.bick.com.xiangmu2zhoukao2.R;

public class ViewPageRecycAdapter extends RecyclerView.Adapter{
private List<ShopBean> list;private Context mContext;private LayoutInflater inflater;
public ViewPageRecycAdapter(List<ShopBean> list, Context mContext) {    this.list = list;    this.mContext = mContext;    inflater = LayoutInflater.from(mContext);}

/** * 重写onCreateViewHolder 返回一个自定义的ViewHolder * onCreateVuewHolder 创建ViewHolder View绑定类似于 settag * @param parent * @param viewType * @return */@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {    View view;    RecyclerView.ViewHolder holder=null;    if(viewType==1){        //创建 绑定 布局        view = inflater.inflate(R.layout.item_1,null);        holder=new MyViewHolder(view);    }else if(viewType==2){        view=inflater.inflate(R.layout.item_2,null);        holder=new MyViewHolderitem(view);    }    return holder;}
/** * 填充onCreateViewHolder 方法返回的holder中控件 * onBindViewHodler 处理逻辑绘制ui数据 * @param holder * @param position */@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {    if (getItemViewType(position)==1) {        MyViewHolder holder1= (MyViewHolder) holder;        holder1.tv_title.setText(list.get(position).title);        ImageLoader.getInstance().displayImage(list.get(position).images,holder1.iv_image);        holder1.tv_price.setText(list.get(position).price);    }    else  {        MyViewHolderitem holder2= (MyViewHolderitem) holder;        holder2.tv_title.setText(list.get(position).title);        ImageLoader.getInstance().displayImage(list.get(position).images,holder2.iv_image);        holder2.tv_price.setText(list.get(position).price);    }}
/** * 条目数量 * @return */@Overridepublic int getItemCount() {    return list.size();}@Overridepublic int getItemViewType(int position) {    if(position%2==0){        return 2;    }else {        return 1;    }}
/** * Holder 类 相当于每一条item * 设置布局 */class MyViewHolder extends RecyclerView.ViewHolder{    private TextView tv_title,tv_price;    private ImageView iv_image;    public MyViewHolder(View itemView) {        super(itemView);        tv_title=itemView.findViewById(R.id.tv_item_title);        tv_price=itemView.findViewById(R.id.tv_item_price);        iv_image=itemView.findViewById(R.id.iv_item_image);    }}  class MyViewHolderitem extends RecyclerView.ViewHolder{    private TextView tv_title,tv_price;    private ImageView iv_image;    public MyViewHolderitem(View itemView) {        super(itemView);        tv_title=itemView.findViewById(R.id.tv_item2_title);        tv_price=itemView.findViewById(R.id.tv_item2_price);        iv_image=itemView.findViewById(R.id.iv_item2_image);    }}


原创粉丝点击