RecycleView适配器及多条目及点击事件
来源:互联网 发布:nginx 根目录 跳转 编辑:程序博客网 时间:2024/05/23 20:47
本代码仅供参考,请勿直接使用
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<ItemBean> list; private OnItemListener onItemListener; private static int TYPE1 = 0; private static int TYPE2 = 1; public interface OnItemListener { public void onItemClick(ItemBean itemBean, int position); public void onItemLongClick(ItemBean itemBean, int position); } public void setOnItemListener(OnItemListener onItemListener) { this.onItemListener = onItemListener; } public MyAdapter(Context context, List<ItemBean> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //加载写好的item布局 RecyclerView.ViewHolder viewHolder = null; if (viewType == TYPE1) { View view1 = LayoutInflater.from(context).inflate(R.layout.item1, parent, false); viewHolder = new Type1Viewholder(view1); } else { View view2 = LayoutInflater.from(context).inflate(R.layout.item2, parent, false); viewHolder = new Type2Viewholder(view2); } return viewHolder; } @Override public int getItemViewType(int position) { return position % 2 == 0 ? TYPE1 : TYPE2; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { //给item布局里的组件设置值 if (holder instanceof Type1Viewholder) { final ItemBean itemBean = list.get(position); Type1Viewholder type1Viewholder = (Type1Viewholder) holder; type1Viewholder.tvName.setText(itemBean.getName()); type1Viewholder.tvAge.setText(itemBean.getAge()); type1Viewholder.ll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (onItemListener != null) { onItemListener.onItemClick(itemBean, position); } } }); type1Viewholder.ll.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { if (onItemListener != null) { onItemListener.onItemLongClick(itemBean, position); } return true; } }); } else { Type2Viewholder type2Viewholder = (Type2Viewholder) holder; } } @Override public int getItemCount() { return list.size(); } private class Type1Viewholder extends RecyclerView.ViewHolder { //类似listview的adapter的viewholder private TextView tvName; private TextView tvAge; private LinearLayout ll; public Type1Viewholder(View itemView) { super(itemView); tvName = itemView.findViewById(R.id.tv_name); tvAge = itemView.findViewById(R.id.tv_age); ll = itemView.findViewById(R.id.ll); } } private class Type2Viewholder extends RecyclerView.ViewHolder { public Type2Viewholder(View itemView) { super(itemView); } } public void refresh(List<ItemBean> l) { list.clear(); list.addAll(l); notifyDataSetChanged(); } public void addItem(ItemBean itemBean) { list.add(0, itemBean); notifyItemInserted(0); }}
阅读全文
0 0
- RecycleView适配器及多条目及点击事件
- recycleview条目点击事件
- recycleview实现多种布局及点击事件
- Recycleview使用详情及添加点击事件
- Android中Activity及条目点击事件
- RecycleView条目点击事件的实现方法
- recycleview 点击条目事件 +拦截器
- RecycleView的多条目展示及原生下拉的刷新
- Recyclerview实现瀑布流布局及条目的点击事件
- RecycleView不同类型Item&添加HeaderView&条目点击事件
- RecycleView条目点击事件的实现 接口回调
- RecyclerView_多条目---点击事件
- RecycleView多条目加载
- RecycleView实现多条目
- RecycleView的多条目
- RecycleView多条目加载
- RecycleView多条目加载
- RecyclerView 初次体验,实现增加删除条目及item长按和点击事件
- github日常指令备忘录
- okhttp拦截器
- java1.8 lambda表达式初识(一)
- 单例模式的七种写法
- AngularJs登录界面代码
- RecycleView适配器及多条目及点击事件
- 上机一 B ModricWang和数论
- JavaSE海滨整理
- good link
- session的特点
- Digital Ocean 购买VPS搭建SS (基于Ubuntu)
- js相关知识点
- OkHttp网络请求框架
- C语言之循环队列的实战使用--基于stm32、keil IDE(四)