//BannerAdapter
public class BannerAdapter extends PagerAdapter { private Context context; private List<Banner> list; public BannerAdapter(Context context, List<Banner> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { return view == o; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView img = new ImageView(context); Glide.with(context).load( StringUtils.https2Http(list.get(position).getIcon())) .into(img); container.addView(img); return img; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }//ProductAdapter
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> { private Context context; private List<Product> list; public ProductAdapter(Context context, List<Product> list) { this.context = context; this.list = list; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = View.inflate(context, R.layout.item_product, null); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { Product product = list.get(i); String[] strings = product.getImages().split("\\|"); Glide.with(context) .load(StringUtils.https2Http(strings[0])) .into(viewHolder.imgProduct); viewHolder.txtTitle.setText(product.getTitle()); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder { private ImageView imgProduct; private TextView txtTitle; public ViewHolder(@NonNull View itemView) { super(itemView); imgProduct = itemView.findViewById(R.id.img_product); txtTitle = itemView.findViewById(R.id.txt_title); } } }//INetCallBack
public interface INetCallBack { void success(Object obj); void failed(Exception e); }//HttpUtils
public class HttpUtils { private static volatile HttpUtils instance; private OkHttpClient client; private Handler handler = new Handler(Looper.getMainLooper()); private HttpUtils() { HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); client = new OkHttpClient.Builder() .connectTimeout(5, TimeUnit.SECONDS) .addInterceptor(interceptor) .build(); } public static HttpUtils getInstance() { if (instance == null) { synchronized (HttpUtils.class) { if (null == instance) { instance = new HttpUtils(); } } } return instance; } public void get(String url, final INetCallBack callBack, final Type type) { Request request = new Request.Builder() .get() .url(url) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { callBack.failed(e); } }); } @Override public void onResponse(Call call, Response response) throws IOException { String result = response.body().string(); Gson gson = new Gson(); final Object o = gson.fromJson(result, type); handler.post(new Runnable() { @Override public void run() { callBack.success(o); } }); } }); } }//StringUtils
public class StringUtils { public static String https2Http(String url) { return url.replace("https", "http"); } }//Banner
public class Banner { /** * aid : 1 * createtime : 2017-12-26T21:49:44 * icon : https://www.zhaoapi.cn/images/quarter/ad1.png * productId : null * title : 第十三界瑞丽模特大赛 * type : 0 * url : http://m.mv14449315.icoc.bz/index.jsp */ private int aid; private String createtime; private String icon; private Object productId; private String title; private int type; private String url; public int getAid() { return aid; } public void setAid(int aid) { this.aid = aid; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public Object getProductId() { return productId; } public void setProductId(Object productId) { this.productId = productId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }//MessageBean
public class MessageBean<T> { private String msg; private String code; private T data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public T getData() { return data; } public void setData(T data) { this.data = data; } }//Product
public class Product { /** * bargainPrice : 99 * createtime : 2017-10-14T21:38:26 * detailUrl : https://item.m.jd.com/product/4345173.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends * images : https://m.360buyimg.com/n0/jfs/t6037/35/2944615848/95178/6cd6cff0/594a3a10Na4ec7f39.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6607/258/1025744923/75738/da120a2d/594a3a12Ne3e6bc56.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6370/292/1057025420/64655/f87644e3/594a3a12N5b900606.jpg!q70.jpg * num : 11 * pid : 45 * price : 2999 * pscid : 39 * selected : 0 * sellerid : 1 * subhead : 高清双摄,就是清晰!2000+1600万高清摄像头,6GB大内存+高通骁龙835处理器,性能怪兽! * title : 一加手机5 (A5000) 6GB+64GB 月岩灰 全网通 双卡双待 移动联通电信4G手机 */ private float bargainPrice; private String createtime; private String detailUrl; private String images; private int num; private int pid; private float price; private int pscid; private int selected; private int sellerid; private String subhead; private String title; public float getBargainPrice() { return bargainPrice; } public void setBargainPrice(float bargainPrice) { this.bargainPrice = bargainPrice; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getDetailUrl() { return detailUrl; } public void setDetailUrl(String detailUrl) { this.detailUrl = detailUrl; } public String getImages() { return images; } public void setImages(String images) { this.images = images; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } public int getSelected() { return selected; } public void setSelected(int selected) { this.selected = selected; } public int getSellerid() { return sellerid; } public void setSellerid(int sellerid) { this.sellerid = sellerid; } public String getSubhead() { return subhead; } public void setSubhead(String subhead) { this.subhead = subhead; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }//Shopper
public class Shopper { private String sellerid; private String sellerName; private List<Product> list; public String getSellerid() { return sellerid; } public void setSellerid(String sellerid) { this.sellerid = sellerid; } public String getSellerName() { return sellerName; } public void setSellerName(String sellerName) { this.sellerName = sellerName; } public List<Product> getList() { return list; } public void setList(List<Product> list) { this.list = list; } }
