recyclerview的高级使用
来源:互联网 发布:我的世界js编辑器jside 编辑:程序博客网 时间:2024/06/10 07:36
适配器
HomeAdapter适配器
public class HomeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context context; SupperClass supperClass; LayoutInflater inflater; private final int TYPE_1 = 0; private final int TYPE_6 = 5; public HomeAdapter(Context context, SupperClass supperClass) { this.context = context; this.supperClass = supperClass; inflater = LayoutInflater.from(context); } @Override public int getItemViewType(int position) { if (position==0){ return TYPE_1; }else{ return TYPE_6; } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType){ case TYPE_1: View view1 = inflater.inflate(R.layout.item_banner,parent,false); MyViewHolder1 holder1 = new MyViewHolder1(view1); return holder1; case TYPE_6: View view = inflater.inflate(R.layout.item_home,parent,false); MyViewHolder6 holder = new MyViewHolder6(view); return holder; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { int type = getItemViewType(position); switch (type){ case TYPE_1: MyViewHolder1 holder1 = (MyViewHolder1) holder; holder1.mbanner.setImageLoader(new GlideImageLoader()); List<String> bannerList = new ArrayList<>(); for (int i = 0; i < supperClass.getData().getAd1().size(); i++) { bannerList.add(supperClass.getData().getAd1().get(i).getImage()); } holder1.mbanner.setImages(bannerList); holder1.mbanner.start(); break; case TYPE_6: MyViewHolder6 myViewHolder =(MyViewHolder6) holder; myViewHolder.mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); HomeRecyclerAdapter adapter = new HomeRecyclerAdapter(context,supperClass.getData().getDefaultGoodsList() ); myViewHolder.mRecyclerView.setAdapter(adapter); break; } } @Override public int getItemCount() { return 2; } class MyViewHolder6 extends RecyclerView.ViewHolder{ RecyclerView mRecyclerView; public MyViewHolder6(View itemView) { super(itemView); mRecyclerView = (RecyclerView)itemView.findViewById(R.id.mRecyclerView); } } class MyViewHolder1 extends RecyclerView.ViewHolder{ private Banner mbanner; public MyViewHolder1(View itemView) { super(itemView); mbanner = (Banner)itemView.findViewById(R.id.banner); } }}
HomeRecyclerAdapter适配器
布局文件public class HomeRecyclerAdapter extends RecyclerView.Adapter<HomeRecyclerAdapter.staggerView>{ private List<SupperClass.DataBean.DefaultGoodsListBean> list; private Context context; public HomeRecyclerAdapter(Context context, List<SupperClass.DataBean.DefaultGoodsListBean> list) { this.list = list; this.context = context; } @Override public staggerView onCreateViewHolder(ViewGroup parent, int viewType) { View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_home_layout, null, false); staggerView staggerView = new staggerView(view); return staggerView; } @Override public void onBindViewHolder(staggerView holder, int position) { holder.tv1.setText(list.get(position).getGoods_name()); holder.tv2.setText("¥"+list.get(position).getShop_price()); ImageLoader.getInstance().displayImage(list.get(position).getGoods_img(),holder.img); } @Override public int getItemCount() { return list.size(); } public static class staggerView extends RecyclerView.ViewHolder{ ImageView img; TextView tv1,tv2; public staggerView(View itemView) { super(itemView); tv1=(TextView) itemView.findViewById(R.id.tv); tv2= (TextView)itemView.findViewById(R.id.shop_price); img =(ImageView) itemView.findViewById(R.id.img); }}}
item_banner
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"></com.youth.banner.Banner>
item_home
<android.support.v7.widget.RecyclerView android:id="@+id/mRecyclerView" android:layout_width="match_parent" android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>
item_home_layout
<ImageView android:id="@+id/img" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/tv" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /><TextView android:id="@+id/shop_price" android:layout_marginLeft="10dp" android:textColor="@android:color/holo_red_dark" android:layout_width="wrap_content" android:layout_height="wrap_content" />activity_main
<android.support.v7.widget.RecyclerView android:layout_below="@id/lll" android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" />main_activity中的使用
public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; List<SupperClass.DataBean.DefaultGoodsListBean> defaultGoodsList; String mpath="http://m.yunifang.com/yunifang/mobile/home"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); // mRecyclerView.setLayoutManager(new GridLayoutManager(this,2)); //mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); } protected void initData() { OkHttp3Utils.getInstance().doGet(mpath, new GsonObjectCallback<SupperClass>() { @Override public void onUi(SupperClass supperClass) { HomeAdapter homeAdapter = new HomeAdapter(MainActivity.this,supperClass); mRecyclerView.setAdapter(homeAdapter); } @Override public void onFailed(Call call, IOException e) { } }); }}粘贴okhttp中的五个类
粘贴imageloader中的类
完成
阅读全文
0 0
- recyclerview的高级使用
- 关于RecyclerView的高级使用
- RecyclerView的通用适配器的高级使用
- Android 高级编程 RecyclerView 控件的使用
- Android高级控件系列四之RecyclerView的使用
- 安卓高级控件3之RecyclerView的使用
- 安卓高级控件3之RecyclerView的使用
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- RecyclerView的使用
- RecyclerView的使用
- RecyclerView 的使用详解
- RecyclerView的基本使用
- RecyclerView的使用
- Android -- RecyclerView的使用
- RecyclerView的使用
- CardView,RecyclerView的使用
- 关于RecyclerView的使用
- RecyclerView的使用
- 进程间通信———消息队列
- java实现文件下载
- 微信退款IIS调用接口(https)提示错误的解决方案
- 房客多可以帮助经纪人手机微信卖房?
- windows server2016 安装sql server2008r2
- recyclerview的高级使用
- Qt:在树莓配中控制gpio阵脚
- resultType之三redirectAction重定向到另一个action
- HDU
- CentOS6.5升级手动安装GCC4.8.2
- 常用win+r运行命令总结
- 网络连接的判断与封装以及网络获取数据的封装
- hive--add columns问题
- sql高级查询