//**点击事件*///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 */ @Override public 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 */ @Override public 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 */ @Override public int getItemCount() { return list.size(); } @Override public 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); } }
RecyclerView使用 以及简单多条目
最新推荐文章于 2019-01-20 09:48:51 发布