RecyclerView使用 以及简单多条目

//**点击事件*/// 
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);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值