Android RecyclerView.Adapter的写法123
来源:互联网 发布:淘宝上手游充值赚钱不 编辑:程序博客网 时间:2024/06/10 00:41
1、ListAdapter(listView格式)
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ListHolder> { int icons[] = {R.drawable.vector_icon_cloud, R.drawable.vector_icon_movie, R.drawable.vector_icon_laptop, R.drawable.vector_icon_loop, R.drawable.vector_icon_menu, R.drawable.vector_icon_mood, R.drawable.vector_icon_palette, R.drawable.vector_icon_search, R.drawable.vector_icon_time, R.drawable.vector_icon_work}; String names[] = {"Cloud", "Movie", "Laptop", "Loop", "Menu", "Mood", "Palette", "Search", "Time", "Work"}; Context context; boolean flag; public ListAdapter(Context context, boolean flag) { this.context = context; this.flag = flag; } @Override public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(flag ? R.layout.list_item : R.layout.list_item_h, parent, false); return new ListHolder(view); } @Override public void onBindViewHolder(ListHolder holder, int position) { holder.setData(position); } @Override public int getItemCount() { return 1000; } class ListHolder extends RecyclerView.ViewHolder { ImageView icon; TextView name; TextView subName; public ListHolder(View itemView) { super(itemView); icon = (ImageView) itemView.findViewById(R.id.icon); name = (TextView) itemView.findViewById(R.id.name); subName = (TextView) itemView.findViewById(R.id.subname); } public void setData(int position) { icon.setImageDrawable(context.getResources().getDrawable(icons[position % 10])); name.setText(names[position % 10]); subName.setText("This is position " + position); } }}
2、GridAdapter(gridViewg格式)
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.ListHolder>{ int icons[] = {R.drawable.g1,R.drawable.g2,R.drawable.g3,R.drawable.g4,R.drawable.g5,R.drawable.g6,R.drawable.g7,R.drawable.g9, R.drawable.g10,R.drawable.g11,R.drawable.g12,R.drawable.g13,R.drawable.g14,R.drawable.g15,R.drawable.g16,R.drawable.g17,R.drawable.g18,R.drawable.g19, R.drawable.g20,R.drawable.g21,R.drawable.g22,R.drawable.g23,R.drawable.g24,R.drawable.g25,R.drawable.g26,R.drawable.g27,R.drawable.g28,R.drawable.g29,}; String names[] = {"浏览器","输入法","健康","效率","教育","理财","阅读","个性化","购物","资讯","生活","工具","出行","通讯","拍照","社交","影音","安全","休闲","棋牌","益智","射击","体育","儿童","网游","角色","策略","经营","竞速"}; Context context; boolean flag; public GridAdapter(Context context, boolean flag){ this.context = context; this.flag = flag; } @Override public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.grid_item, parent, false); return new ListHolder(view); } @Override public void onBindViewHolder(ListHolder holder, int position) { holder.setData(position); } @Override public int getItemCount() { return 1000; } class ListHolder extends RecyclerView.ViewHolder { ImageView icon; TextView name; public ListHolder(View itemView) { super(itemView); icon = (ImageView) itemView.findViewById(R.id.pic); name = (TextView) itemView.findViewById(R.id.name); } public void setData(int position){ icon.setImageDrawable(context.getResources().getDrawable(icons[position % icons.length])); name.setText(names[position % names.length]); } }}
3、StaggeredGridAdapter(瀑布流)
public class StaggeredGridAdapter extends RecyclerView.Adapter<StaggeredGridAdapter.ListHolder>{ Context context; boolean flag; int iconsV[] = {R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4,R.drawable.p5,R.drawable.p6,R.drawable.p7,R.drawable.p9, R.drawable.p10,R.drawable.p11,R.drawable.p12,R.drawable.p13,R.drawable.p14,R.drawable.p15,R.drawable.p16,R.drawable.p17,R.drawable.p18,R.drawable.p19, R.drawable.p20,R.drawable.p21,R.drawable.p22,R.drawable.p23,R.drawable.p24,R.drawable.p25,R.drawable.p26,R.drawable.p27,R.drawable.p28,R.drawable.p29, R.drawable.p30,R.drawable.p31,R.drawable.p32,R.drawable.p33,R.drawable.p34,R.drawable.p35,R.drawable.p36,R.drawable.p37,R.drawable.p38,R.drawable.p39, R.drawable.p40,R.drawable.p41,R.drawable.p42,R.drawable.p43,R.drawable.p44}; int iconsH[] = {R.drawable.h1,R.drawable.h2,R.drawable.h3,R.drawable.h4,R.drawable.h5,R.drawable.h6,R.drawable.h7,R.drawable.h9, R.drawable.h10,R.drawable.h11,R.drawable.h12,R.drawable.h13,R.drawable.h14,R.drawable.h15,R.drawable.h16,R.drawable.h17,R.drawable.h18,R.drawable.h19, R.drawable.h20,R.drawable.h21,R.drawable.h22,R.drawable.h23,R.drawable.h24,R.drawable.h25,R.drawable.h26,R.drawable.h27,R.drawable.h28,R.drawable.h29, R.drawable.h30,R.drawable.h31,R.drawable.h32,R.drawable.h33,R.drawable.h34,R.drawable.h35,R.drawable.h36,R.drawable.h37,R.drawable.h38,R.drawable.h39, R.drawable.h40,R.drawable.h41,R.drawable.h42,R.drawable.h43,R.drawable.h44}; public StaggeredGridAdapter(Context context, boolean flag){ this.context = context; this.flag = flag; } @Override public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(flag ? R.layout.staggered_grid_item : R.layout.staggered_grid_item_h, parent, false); return new ListHolder(view); } @Override public void onBindViewHolder(ListHolder holder, int position) { holder.setData(position); } @Override public int getItemCount() { return 1000; } class ListHolder extends RecyclerView.ViewHolder { ImageView icon; TextView name; public ListHolder(View itemView) { super(itemView); icon = (ImageView) itemView.findViewById(R.id.pic); name = (TextView) itemView.findViewById(R.id.name); } public void setData(int position){ if (flag) { icon.setImageResource(iconsV[position % iconsV.length]); } else { icon.setImageResource(iconsH[position % iconsH.length]); } name.setText("This is position "+ position); } }}
四:用法
private View initListView(boolean isVer) { toolbar.setSubtitle(isVer ?"LinearLayoutManager Vertical":"LinearLayoutManager Horizontal"); LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(isVer ? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(new ListAdapter(this,isVer)); // recyclerView.setHasFixedSize(true); recyclerView.setBackgroundColor(Color.WHITE); return recyclerView; } private View initGridView(boolean isVer) { toolbar.setSubtitle(isVer ?"GridLayoutManager Vertical":"GridLayoutManager Horizontal"); GridLayoutManager layoutManager = new GridLayoutManager(this,isVer ?3:4); layoutManager.setOrientation(isVer ? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(true); recyclerView.setAdapter(new GridAdapter(this,isVer)); return recyclerView; } private View initStaggeredGridView(boolean isVer) { toolbar.setSubtitle(isVer ?"StaggeredGridLayoutManager Vertical":"StaggeredGridLayoutManager Horizontal"); StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(2,isVer ? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(new StaggeredGridAdapter(this,isVer)); return recyclerView; }
0 0
- Android RecyclerView.Adapter的写法123
- Android 封装RecyclerView的Adapter
- Android适配器Adapter的写法
- Android RecyclerView的简便写法
- RecyclerView 使用Adapter中的配置和Acticity的写法
- android recyclerView adapter 的 itemType的使用
- Android 用Databinding写recyclerview的adapter
- Android Gallery Adapter的基本写法
- Android Adapter推荐写法
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- RecyclerView万能的Adapter
- RecyclerView的万能Adapter
- RecyclerView.Adapter的封装
- RecyclerView.Adapter的实现
- Android RecyclerView设计通用Adapter
- Android RecyclerView通用Adapter封装
- Android RecyclerView Adapter及Holder的封装【原创】
- android之实现万能适配RecyclerView的adapter
- 在ideal中以equinox-SDK-Neon框架输出一个基于osgi的helloworld例子
- xml文件的解析
- vtkImageBlend在处理图像融合时的用法
- 文章标题
- hdu2039三角形
- Android RecyclerView.Adapter的写法123
- Access注入点高级运用总结
- 序列随机化
- 223. Rectangle Area
- 堆箱子
- js异步加载
- JVM——内存管理和垃圾回收
- hadoop的数据仓库--Hive初识入门
- Codeforces Round #336 (Div. 2) D 区间dp