#契约类
public interface HomeContract {
public abstract class IHomePersenter{
public abstract void getHome(HashMap<String,String> map);
}
interface IHomeModel{
void getHome(HashMap<String, String> map, RequestCallback requestCallback);
}
interface IHomeView{
void onFailpro(String msg);
void onSuccesspro(HomeBean.DataBean list);
}
}
#适配器
public class HomeAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
private final int TYPE_BANNER = 0;
private final int TYPE_FENLIE = 1;
private final int TYPE_MIAOSHA = 2;
private final int TYPE_TUIJIAN = 3;
private Context context;
private HomeBean.DataBean list;
public HomeAdapter(Context context, HomeBean.DataBean list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (getItemViewType(i)==TYPE_BANNER){
View inflate = LayoutInflater.from(context).inflate(R.layout.xbanner_item, viewGroup, false);
VHbanner vHbanner = new VHbanner(inflate);
return vHbanner;
}else if(getItemViewType(i)==TYPE_FENLIE){
View inflate = LayoutInflater.from(context).inflate(R.layout.fenlie_layout, viewGroup, false);
VHfenlei vHfenlei = new VHfenlei(inflate);
return vHfenlei;
}else if(getItemViewType(i)==TYPE_MIAOSHA){
View inflate = LayoutInflater.from(context).inflate(R.layout.miaosha_layout, viewGroup, false);
VHmiaosha vHmiaosha = new VHmiaosha(inflate);
return vHmiaosha;
}else {
View inflate = LayoutInflater.from(context).inflate(R.layout.tuijian_layout, viewGroup, false);
VHtuijian vHtuijian = new VHtuijian(inflate);
return vHtuijian;
}
}
@Override
public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
if (list.banner!=null&&list.fenlei!=null&&list.miaosha!=null&&list.tuijian!=null){
if (viewHolder instanceof VHbanner){
final ArrayList<String> b = new ArrayList<>();
for (int j = 0;j<list.banner.size();j++){
b.add(list.banner.get(j).icon);
}
((VHbanner) viewHolder).xbanner.setData(b,null);
((VHbanner) viewHolder).xbanner.loadImage(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, Object model, View view, int position) {
//1、此处使用的Glide加载图片,可自行替换自己项目中的图片加载框架
//2、返回的图片路径为Object类型,你只需要强转成你传输的类型就行,切记不要胡乱强转!
Glide.with(context).load(b.get(position)).into((ImageView) view);
}
});
}else if (viewHolder instanceof VHfenlei){
((VHfenlei) viewHolder).rc.setLayoutManager(new GridLayoutManager(context,2,GridLayoutManager.HORIZONTAL,false));
HomeFenlieAdapter homeFenlieAdapter = new HomeFenlieAdapter(context, list.fenlei);
((VHfenlei) viewHolder).rc.setAdapter(homeFenlieAdapter);
}else if (viewHolder instanceof VHmiaosha){
((VHmiaosha) viewHolder).rc.setLayoutManager(new LinearLayoutManager(context,LinearLayout.HORIZONTAL,false));
HomeMiaoshaAdapter homeMiaoshaAdapter = new HomeMiaoshaAdapter(context, list.miaosha.list);
((VHmiaosha) viewHolder).rc.setAdapter(homeMiaoshaAdapter);
}else {
((VHtuijian) viewHolder).rc.setLayoutManager(new LinearLayoutManager(context,LinearLayout.HORIZONTAL,false));
HomeTuijianAdapter homeTuijianAdapter = new HomeTuijianAdapter(context, list.tuijian.list);
((VHtuijian) viewHolder).rc.setAdapter(homeTuijianAdapter);
}
}
}
@Override
public int getItemCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
if (position==0){
return TYPE_BANNER;
}else if(position==1){
return TYPE_FENLIE;
}else if (position==2){
return TYPE_MIAOSHA;
}else {
return TYPE_TUIJIAN;
}
}
class VHbanner extends RecyclerView.ViewHolder{
XBanner xbanner;
public VHbanner(@NonNull View itemView) {
super(itemView);
xbanner = itemView.findViewById(R.id.xbanner);
}
}
class VHfenlei extends RecyclerView.ViewHolder{
RecyclerView rc;
public VHfenlei(@NonNull View itemView) {
super(itemView);
rc = itemView.findViewById(R.id.rc);
}
}
class VHmiaosha extends RecyclerView.ViewHolder{
RecyclerView rc;
public VHmiaosha(@NonNull View itemView) {
super(itemView);
rc = itemView.findViewById(R.id.rc);
}
}
class VHtuijian extends RecyclerView.ViewHolder{
RecyclerView rc;
public VHtuijian(@NonNull View itemView) {
super(itemView);
rc = itemView.findViewById(R.id.rc);
}
}
}