adapterpackage com.example.administrator.myapplication; import androidx.appcompat.app.AppCompatActiv

public class AdapterHome extends RecyclerView.Adapter {
    private static final int TYPE_ONE = 1;
    private static final int TYPE_TWO = 2;
    private static final int TYPE_THREE = 3;

    private int totalPage;
    private int mPageSize=10;
    private BeanHome beanHome;
    private Context context;
    List<String>list = new ArrayList<>();

    List<View>listVeiws;

    public AdapterHome(BeanHome beanHome, Context context) {
        this.beanHome = beanHome;
        this.context = context;
    }
    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view;
        if (viewType==TYPE_ONE){
             view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ont_item, null);
             return new OneHolder(view);
        }else if (viewType==TYPE_TWO){
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.two_item, null);
            return new TwoHolder(view);
        } else{
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.three_item, null);
            return new ThreeHolder(view);
        }

    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
        int itemViewType = getItemViewType(position);
        switch (itemViewType){
            case TYPE_ONE:
              final OneHolder holder1 = (OneHolder) viewHolder;
                for (int j = 0; j < beanHome.getData().getBanner().size(); j++) {
                    list.add(beanHome.getData().getBanner().get(j).getIcon());
                }
                holder1.xb.setData(list,null);
                holder1.xb.setmAdapter(new XBanner.XBannerAdapter() {
                    @Override
                    public void loadBanner(XBanner banner, View view, int position) {
                        Glide.with(context).load(list.get(position)).into((ImageView) view);
                    }
                });
                break;
            case TYPE_TWO:
                TwoHolder holder2 = (TwoHolder) viewHolder;
                listVeiws = new ArrayList<>();

                //总的页数,取整(这里有三种类型:Math.ceil(3.5)=4:向上取整,只要有小数都+1  Math.floor(3.5)=3:向下取整  Math.round(3.5)=4:四舍五入)
                totalPage = (int) Math.ceil(beanHome.getData().getFenlei().size() * 1.0 / mPageSize);
                for (int v = 0; v < totalPage; v++) {
                    GridView gridView = (GridView) LayoutInflater.from(context).inflate(R.layout.grid_view, null);
                    gridView.setAdapter(new MyGridView(context, beanHome, v, mPageSize));

                    listVeiws.add(gridView);

                }
                holder2.vp.setAdapter(new MyPageAdapter(listVeiws));

                break;
            case TYPE_THREE:
                    ThreeHolder holder3 = (ThreeHolder) viewHolder;
                    holder3.rv2.setLayoutManager(new GridLayoutManager(context,2));
                    holder3.rv2.setAdapter(new MyPageAdapter2(beanHome,context));
                    holder3.tvvt.setSelected(true);
                break;

        }
    }

    @Override
    public int getItemCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        if (position==0){
            return TYPE_ONE;
        }else if (position==1){
            return TYPE_TWO;
        }else if (position==2){
            return TYPE_THREE;
        }
        return super.getItemViewType(position);
    }

    private class OneHolder extends RecyclerView.ViewHolder {
         XBanner xb;

        public OneHolder(View itemView) {
            super(itemView);
             xb = itemView.findViewById(R.id.xb);
        }
    }

    private class TwoHolder extends RecyclerView.ViewHolder {
        ViewPager vp;

        public TwoHolder(View itemView) {
            super(itemView);
             vp = itemView.findViewById(R.id.vp);
        }
    }

    private class ThreeHolder extends RecyclerView.ViewHolder {

        private final TextView tvvt;
        RecyclerView rv2;

        public ThreeHolder(View itemView) {
            super(itemView);
            rv2 = itemView.findViewById(R.id.rv2);
             tvvt = itemView.findViewById(R.id.tvvt);
        }
    }

    private class FourHolder extends RecyclerView.ViewHolder {
        public FourHolder(View itemView) {
            super(itemView);

        }
    }
public class AdapterHome extends RecyclerView.Adapter<AdapterHome.ViewHolder> {
    private List<HomeBean.DataBean>list;
    private Context context;

    public AdapterHome(List<HomeBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main, null);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.textView.setText(list.get(position).getTitle());
        Glide.with(context).load(list.get(position).getLogo()).into(holder.image_View);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        SimpleDraweeView image_View;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
             image_View = itemView.findViewById(R.id.image_View);
             textView = itemView.findViewById(R.id.textView);
        }
    }
}
package com.example.administrator.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

import android.os.Bundle;
import android.view.View;

import com.example.administrator.myapplication.Adapter.AdapterHome;
import com.example.administrator.myapplication.Bean.HomeBean;
import com.example.administrator.myapplication.Presenter.IPresenterHome;
import com.example.administrator.myapplication.Presenter.PresenterHome;
import com.example.administrator.myapplication.View.IViewHome;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements IViewHome {

    private RecyclerView recyclerView;
    private List<HomeBean.DataBean>data = new ArrayList<>();
    private Unbinder unbinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         recyclerView = findViewById(R.id.recyclerView);
        IPresenterHome presenterHome = new PresenterHome(this);
        presenterHome.takeData();
         unbinder = ButterKnife.bind(this);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbinder.unbind();
    }

    @Override
    public void getData(HomeBean homeBean) {
        data.addAll(homeBean.getData());
        AdapterHome adapterHome = new AdapterHome(data, MainActivity.this);
        recyclerView.setLayoutManager(new GridLayoutManager(this,2));
        recyclerView.setAdapter(adapterHome);
    }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值