Adapter最新

public class RecyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

Context context;
HomeBean homeBeans;
private int RXXP_TYPE =0;
private int MLSS_TYPE =1;
private int PZSH_TYPE =2;
private View view;
private List<Three> commodityList;
private List<Three> commodityList1;
private List<Three> commodityList2;

public RecyAdapter(Context context, HomeBean homeBeans) {
    this.context = context;
    this.homeBeans = homeBeans;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    if (i==RXXP_TYPE){
        view = LayoutInflater.from(context).inflate(R.layout.rxxp_item, viewGroup, false);
        RxxpHoldle rxxpHoldle = new RxxpHoldle(view);
        return rxxpHoldle;
    }else if (i==MLSS_TYPE){
        view = LayoutInflater.from(context).inflate(R.layout.mlss_item,viewGroup,false);
        MLSSHoldle mlssHoldle = new MLSSHoldle(view);
        return mlssHoldle;
    }else if (i==PZSH_TYPE){
        view = LayoutInflater.from(context).inflate(R.layout.pzsh_item,viewGroup,false);
        PZSHHoldle pzshHoldle = new PZSHHoldle(view);
        return pzshHoldle;
    }
    return null;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    final DaoSession daoSession = App.daoSession;
    if (viewHolder instanceof RxxpHoldle){
        RxxpHoldle rxxpHoldle = (RxxpHoldle) viewHolder;
        //熱銷新品
        rxxpHoldle.rexiao_text.setText(homeBeans.getResult().getRxxp().getName());
        //佈局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false);
        rxxpHoldle.rexiao_view.setLayoutManager(linearLayoutManager);
        commodityList = homeBeans.getResult().getRxxp().getCommodityList();
        OneAdapter oneAdapter = new OneAdapter(context, commodityList);
        rxxpHoldle.rexiao_view.setAdapter(oneAdapter);
        oneAdapter.setRecyOnclick(new OneAdapter.RecyOnclick() {
            @Override
            public void oonclick(int sss) {
                Three three = new Three();
                three.setMasterPic(commodityList.get(sss).getMasterPic());
                three.setCommodityName(commodityList.get(sss).getCommodityName());
                three.setMasterPic(commodityList.get(sss).getPrice());
                daoSession.insert(three);
                Toast.makeText(context, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });

    }else if (viewHolder instanceof MLSSHoldle){
        MLSSHoldle mlssHoldle = (MLSSHoldle) viewHolder;
        //魔力時尚
        mlssHoldle.moli_text.setText(homeBeans.getResult().getMlss().getName());
        //佈局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false);
        mlssHoldle.moli_view.setLayoutManager(linearLayoutManager);
        commodityList1 = homeBeans.getResult().getMlss().getCommodityList();
        TwoAdapter twoAdapter = new TwoAdapter(context,commodityList1);
        mlssHoldle.moli_view.setAdapter(twoAdapter);
        twoAdapter.setRecyOnclick(new TwoAdapter.RecyOnclick() {
            @Override
            public void oonclick(int sss) {
                Three three = new Three();
                three.setMasterPic(commodityList1.get(sss).getMasterPic());
                three.setCommodityName(commodityList1.get(sss).getCommodityName());
                three.setMasterPic(commodityList1.get(sss).getPrice());
                daoSession.insert(three);
                Toast.makeText(context, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });
    }else if (viewHolder instanceof PZSHHoldle){
        PZSHHoldle pzshHoldle = (PZSHHoldle) viewHolder;
        //品質生活
        pzshHoldle.pinzhi_text.setText(homeBeans.getResult().getPzsh().getName());
        //佈局
        GridLayoutManager gridLayoutManager = new GridLayoutManager(context,2);
        pzshHoldle.pinzhi_view.setLayoutManager(gridLayoutManager);
        commodityList2 = homeBeans.getResult().getPzsh().getCommodityList();
        ThreeAdapter threeAdapter = new ThreeAdapter(context,commodityList2);
        pzshHoldle.pinzhi_view.setAdapter(threeAdapter);
        threeAdapter.setRecyOnclick(new ThreeAdapter.RecyOnclick() {
            @Override
            public void oonclick(int sss) {
                Three three = new Three();
                three.setMasterPic(commodityList2.get(sss).getMasterPic());
                three.setCommodityName(commodityList2.get(sss).getCommodityName());
                three.setMasterPic(commodityList2.get(sss).getPrice());
                daoSession.insert(three);
                Toast.makeText(context, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

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

@Override
public int getItemViewType(int position) {
    if(position==0){
        return  RXXP_TYPE;
    }else if (position==1){
        return   MLSS_TYPE;
    }else if (position==2){
        return  PZSH_TYPE;
    }
    return super.getItemViewType(position);
}

//自定義holder
public class RxxpHoldle extends RecyclerView.ViewHolder{
    private TextView rexiao_text;
    private final RecyclerView rexiao_view;

    public RxxpHoldle(@NonNull View itemView) {
        super(itemView);
        rexiao_text = itemView.findViewById(R.id.rexiao_text);
        rexiao_view = itemView.findViewById(R.id.rexiao_view);
    }
}
public class PZSHHoldle extends RecyclerView.ViewHolder{

    private final TextView pinzhi_text;
    private final RecyclerView pinzhi_view;

    public PZSHHoldle(@NonNull View itemView) {
        super(itemView);
        pinzhi_text = itemView.findViewById(R.id.pinzhi_text);
        pinzhi_view = itemView.findViewById(R.id.pinzhi_view);
    }
}
public class MLSSHoldle extends RecyclerView.ViewHolder{

    private final TextView moli_text;
    private final RecyclerView moli_view;

    public MLSSHoldle(@NonNull View itemView) {
        super(itemView);
        moli_text = itemView.findViewById(R.id.moli_text);
        moli_view = itemView.findViewById(R.id.moli_view);
    }
}

}

回調接口
public interface RecyOnclick{
void oonclick(int sss);
}
RecyOnclick recyOnclick;

public void setRecyOnclick(RecyOnclick recyOnclick) {
    this.recyOnclick = recyOnclick;
}

子adapter的點擊事件
viewHoler.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int adapterPosition = viewHoler.getAdapterPosition();
if (recyOnclick!=null){
recyOnclick.oonclick(adapterPosition);
}
}
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章