适配器
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中的类
完成