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); }}
阅读全文
0 0
- RecyclerView使用 以及简单多条目
- RecyclerView简单多条目
- 0000001recyclerview的使用多条目。。
- RecyclerView多条目
- RecyclerView多条目展示
- RecyclerView多条目加载
- RecyclerView多条目加载
- RecyclerView多条目
- RecyclerView(多条目)
- RecyclerView 多条目加载
- RecyclerView多条目加载
- RecyclerView多条目展示
- Recyclerview多条目+tablayout
- RecyclerView多条目模版
- recyclerview多条目加载
- recyclerView 多条目视图
- RecyclerView多条目
- recyclerview实现多条目
- 标准库是如何发起系统调用的
- 【leetcode】Keyboard Row题目的C++解法
- 122. Best Time to Buy and Sell Stock II
- Android Material Design 风格的新闻App
- SMPCUP2017——NLP
- RecyclerView使用 以及简单多条目
- AngularJS 注册表单验证
- 浅谈Java里的三种锁:偏向锁、轻量级锁和重量级锁
- Qt5使用qDebug()在windows控制台中输出信息
- 传入一个string类型的参数,然互将string的每个字符间隔一个空格返回
- 秒杀和抢购
- 第五周项目二
- gitlab使用说明 git 项目分类
- mongoengine使用