依赖
//recyclerview
implementation 'jp.wasabeef:recyclerview-animators:2.3.0'
//fresco
implementation 'com.facebook.fresco:fresco:1.9.0'
//retrofit
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.youth.banner:banner:1.4.10'
//glide
implementation 'com.github.bumptech.glide:glide:4.4.0'
权限
<uses-permission android:name="android.permission.INTERNET"/>
记得注册
android:name=".view.MyApplication"
drawable
daojishi_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp"/>
<size android:width="10dp" android:height="10dp"/>
<solid android:color="#000"/>
</shape>
下面是布局
one_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_gravity="center"
android:layout_height="100dp">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/one_img"
android:layout_width="300dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/one_text"
android:layout_marginLeft="10dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
two_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:id="@+id/two_text"
android:layout_marginLeft="10dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/two_img"
app:roundAsCircle="true"
app:roundingBorderWidth="5dp"
app:roundingBorderColor="#000000"
android:layout_width="300dp"
android:layout_height="100dp" />
</LinearLayout>
activity_main
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".view.MainActivity">
<com.youth.banner.Banner
android:id="@+id/main_banner"
android:layout_width="match_parent"
android:layout_height="300dp">
</com.youth.banner.Banner>
<!--京东秒杀-->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--时间-->
<LinearLayout
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="16dp">
<TextView
android:textColor="#FF3848"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="17sp"
android:text="京东秒杀"/>
<TextView
android:textColor="#222222"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="14sp"
android:text=" 12点场 "/>
<TextView
android:textStyle="bold"
android:id="@+id/tv_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:background="@drawable/daojishi_shape"
android:textColor="@android:color/white"
android:textSize="11sp"
android:text="02"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:text=":"/>
<TextView
android:textStyle="bold"
android:id="@+id/tv_minute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:background="@drawable/daojishi_shape"
android:textColor="@android:color/white"
android:textSize="11sp"
android:text="15"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:text=":"/>
<TextView
android:textStyle="bold"
android:id="@+id/tv_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:background="@drawable/daojishi_shape"
android:textColor="@android:color/white"
android:textSize="11sp"
android:text="36"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/main_miao"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
下面是代码
model
IModel
public interface IModel {
//获取数据
void getSkin(String uri);
}
ModelFusion
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ModelFusion implements IModel {
private final IPresenter iPresenter;
public ModelFusion(IPresenter iPresenter) {
this.iPresenter = iPresenter;
}
@Override
public void getSkin(String uri) {
//网络请求
RetrofitUtil retrofitUtil = RetrofitUtil.getInstance();
MyService myService = retrofitUtil.createRequest(MyService.class);
Call<SkinBean> skin = myService.getSkin(uri);
//执行
skin.enqueue(new Callback<SkinBean>() {
@Override
public void onResponse(Call<SkinBean> call, Response<SkinBean> response) {
if (response.isSuccessful()){
SkinBean body = response.body();
List<SkinBean.DataBean.SubjectsBean> subjects = body.getData().getSubjects();
iPresenter.getData(subjects);
}
}
@Override
public void onFailure(Call<SkinBean> call, Throwable t) {
}
});
}
}
MyService
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface MyService {
@GET("umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611")
Call<SkinBean> getSkin(@Query("uri") String uri);
}
SkinBean
public class SkinBean {
private int code;
private String msg;
private DataBean data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public static class DataBean {
private ActivityInfoBean activityInfo;
private boolean creditRecived;
private GoodsSpreeActivityBean goodsSpreeActivity;
private List<SubjectsBean> subjects;
private List<Ad1Bean> ad1;
private List<Ad5Bean> ad5;
private List<Ad8Bean> ad8;
private List<DefaultGoodsListBean> defaultGoodsList;
public ActivityInfoBean getActivityInfo() {
return activityInfo;
}
public void setActivityInfo(ActivityInfoBean activityInfo) {
this.activityInfo = activityInfo;
}
public boolean isCreditRecived() {
return creditRecived;
}
public void setCreditRecived(boolean creditRecived) {
this.creditRecived = creditRecived;
}
public GoodsSpreeActivityBean getGoodsSpreeActivity() {
return goodsSpreeActivity;
}
public void setGoodsSpreeActivity(GoodsSpreeActivityBean goodsSpreeActivity) {
this.goodsSpreeActivity = goodsSpreeActivity;
}
public List<SubjectsBean> getSubjects() {
return subjects;
}
public void setSubjects(List<SubjectsBean> subjects) {
this.subjects = subjects;
}
public List<Ad1Bean> getAd1() {
return ad1;
}
public void setAd1(List<Ad1Bean> ad1) {
this.ad1 = ad1;
}
public List<Ad5Bean> getAd5() {
return ad5;
}
public void setAd5(List<Ad5Bean> ad5) {
this.ad5 = ad5;
}
public List<Ad8Bean> getAd8() {
return ad8;
}
public void setAd8(List<Ad8Bean> ad8) {
this.ad8 = ad8;
}
public List<DefaultGoodsListBean> getDefaultGoodsList() {
return defaultGoodsList;
}
public void setDefaultGoodsList(List<DefaultGoodsListBean> defaultGoodsList) {
this.defaultGoodsList = defaultGoodsList;
}
public static class ActivityInfoBean {
private String activityAreaDisplay;
private List<ActivityInfoListBean> activityInfoList;
public String getActivityAreaDisplay() {
return activityAreaDisplay;
}
public void setActivityAreaDisplay(String activityAreaDisplay) {
this.activityAreaDisplay = activityAreaDisplay;
}
public List<ActivityInfoListBean> getActivityInfoList() {
return activityInfoList;
}
public void setActivityInfoList(List<ActivityInfoListBean> activityInfoList) {
this.activityInfoList = activityInfoList;
}
public static class ActivityInfoListBean {
private String id;
private String activityImg;
private String activityType;
private String activityData;
private String activityDataDetail;
private String activityAreaDisplay;
private String countDownEnable;
private String remark;
private int sort;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getActivityImg() {
return activityImg;
}
public void setActivityImg(String activityImg) {
this.activityImg = activityImg;
}
public String getActivityType() {
return activityType;
}
public void setActivityType(String activityType) {
this.activityType = activityType;
}
public String getActivityData() {
return activityData;
}
public void setActivityData(String activityData) {
this.activityData = activityData;
}
public String getActivityDataDetail() {
return activityDataDetail;
}
public void setActivityDataDetail(String activityDataDetail) {
this.activityDataDetail = activityDataDetail;
}
public String getActivityAreaDisplay() {
return activityAreaDisplay;
}
public void setActivityAreaDisplay(String activityAreaDisplay) {
this.activityAreaDisplay = activityAreaDisplay;
}
public String getCountDownEnable() {
return countDownEnable;
}
public void setCountDownEnable(String countDownEnable) {
this.countDownEnable = countDownEnable;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
}
}
public static class GoodsSpreeActivityBean {
private String id;
private String name;
private String startDate;
private String endDate;
private String status;
private String startSeconds;
private String endSeconds;
private String isChecked;
private List<GoodsListBean> goodsList;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getStartSeconds() {
return startSeconds;
}
public void setStartSeconds(String startSeconds) {
this.startSeconds = startSeconds;
}
public String getEndSeconds() {
return endSeconds;
}
public void setEndSeconds(String endSeconds) {
this.endSeconds = endSeconds;
}
public String getIsChecked() {
return isChecked;
}
public void setIsChecked(String isChecked) {
this.isChecked = isChecked;
}
public List<GoodsListBean> getGoodsList() {
return goodsList;
}
public void setGoodsList(List<GoodsListBean> goodsList) {
this.goodsList = goodsList;
}
public static class GoodsListBean {
private String id;
private String goodsSpreeId;
private String goodsId;
private String goodsName;
private String goodsImg;
private double marketPrice;
private double activityPrice;
private int salesRatio;
private int stockNumber;
private int releaseNumber;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGoodsSpreeId() {
return goodsSpreeId;
}
public void setGoodsSpreeId(String goodsSpreeId) {
this.goodsSpreeId = goodsSpreeId;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsImg() {
return goodsImg;
}
public void setGoodsImg(String goodsImg) {
this.goodsImg = goodsImg;
}
public double getMarketPrice() {
return marketPrice;
}
public void setMarketPrice(double marketPrice) {
this.marketPrice = marketPrice;
}
public double getActivityPrice() {
return activityPrice;
}
public void setActivityPrice(double activityPrice) {
this.activityPrice = activityPrice;
}
public int getSalesRatio() {
return salesRatio;
}
public void setSalesRatio(int salesRatio) {
this.salesRatio = salesRatio;
}
public int getStockNumber() {
return stockNumber;
}
public void setStockNumber(int stockNumber) {
this.stockNumber = stockNumber;
}
public int getReleaseNumber() {
return releaseNumber;
}
public void setReleaseNumber(int releaseNumber) {
this.releaseNumber = releaseNumber;
}
}
}
public static class SubjectsBean {
private String id;
private String title;
private String detail;
private String image;
private String start_time;
private String end_time;
private int show_number;
private String state;
private int sort;
private String descImage;
private String template;
private String url;
private String wapUrl;
private List<GoodsListBeanX> goodsList;
private List<String> goodsIdsList;
private List<GoodsRelationListBean> goodsRelationList;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getStart_time() {
return start_time;
}
public void setStart_time(String start_time) {
this.start_time = start_time;
}
public String getEnd_time() {
return end_time;
}
public void setEnd_time(String end_time) {
this.end_time = end_time;
}
public int getShow_number() {
return show_number;
}
public void setShow_number(int show_number) {
this.show_number = show_number;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public String getDescImage() {
return descImage;
}
public void setDescImage(String descImage) {
this.descImage = descImage;
}
public String getTemplate() {
return template;
}
public void setTemplate(String template) {
this.template = template;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getWapUrl() {
return wapUrl;
}
public void setWapUrl(String wapUrl) {
this.wapUrl = wapUrl;
}
public List<GoodsListBeanX> getGoodsList() {
return goodsList;
}
public void setGoodsList(List<GoodsListBeanX> goodsList) {
this.goodsList = goodsList;
}
public List<String> getGoodsIdsList() {
return goodsIdsList;
}
public void setGoodsIdsList(List<String> goodsIdsList) {
this.goodsIdsList = goodsIdsList;
}
public List<GoodsRelationListBean> getGoodsRelationList() {
return goodsRelationList;
}
public void setGoodsRelationList(List<GoodsRelationListBean> goodsRelationList) {
this.goodsRelationList = goodsRelationList;
}
public static class GoodsListBeanX {
private String id;
private String goods_name;
private double shop_price;
private double market_price;
private String goods_img;
private boolean reservable;
private String efficacy;
private int stock_number;
private int restrict_purchase_num;
private String goodsName;
private String goodsImage;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public double getShop_price() {
return shop_price;
}
public void setShop_price(double shop_price) {
this.shop_price = shop_price;
}
public double getMarket_price() {
return market_price;
}
public void setMarket_price(double market_price) {
this.market_price = market_price;
}
public String getGoods_img() {
return goods_img;
}
public void setGoods_img(String goods_img) {
this.goods_img = goods_img;
}
public boolean isReservable() {
return reservable;
}
public void setReservable(boolean reservable) {
this.reservable = reservable;
}
public String getEfficacy() {
return efficacy;
}
public void setEfficacy(String efficacy) {
this.efficacy = efficacy;
}
public int getStock_number() {
return stock_number;
}
public void setStock_number(int stock_number) {
this.stock_number = stock_number;
}
public int getRestrict_purchase_num() {
return restrict_purchase_num;
}
public void setRestrict_purchase_num(int restrict_purchase_num) {
this.restrict_purchase_num = restrict_purchase_num;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsImage() {
return goodsImage;
}
public void setGoodsImage(String goodsImage) {
this.goodsImage = goodsImage;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public static class GoodsRelationListBean {
private String id;
private String subject_id;
private String goods_id;
private String goodsName;
private String goodsImage;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSubject_id() {
return subject_id;
}
public void setSubject_id(String subject_id) {
this.subject_id = subject_id;
}
public String getGoods_id() {
return goods_id;
}
public void setGoods_id(String goods_id) {
this.goods_id = goods_id;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsImage() {
return goodsImage;
}
public void setGoodsImage(String goodsImage) {
this.goodsImage = goodsImage;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
}
public static class Ad1Bean {
private String id;
private String createtime;
private String lastupdatetime;
private String image;
private int ad_type;
private int sort;
private int position;
private int enabled;
private String createuser;
private String lastupdateuser;
private String ad_type_dynamic;
private String ad_type_dynamic_data;
private String ad_type_dynamic_detail;
private String title;
private String channelType;
private String show_channel;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public String getLastupdatetime() {
return lastupdatetime;
}
public void setLastupdatetime(String lastupdatetime) {
this.lastupdatetime = lastupdatetime;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public int getAd_type() {
return ad_type;
}
public void setAd_type(int ad_type) {
this.ad_type = ad_type;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public int getEnabled() {
return enabled;
}
public void setEnabled(int enabled) {
this.enabled = enabled;
}
public String getCreateuser() {
return createuser;
}
public void setCreateuser(String createuser) {
this.createuser = createuser;
}
public String getLastupdateuser() {
return lastupdateuser;
}
public void setLastupdateuser(String lastupdateuser) {
this.lastupdateuser = lastupdateuser;
}
public String getAd_type_dynamic() {
return ad_type_dynamic;
}
public void setAd_type_dynamic(String ad_type_dynamic) {
this.ad_type_dynamic = ad_type_dynamic;
}
public String getAd_type_dynamic_data() {
return ad_type_dynamic_data;
}
public void setAd_type_dynamic_data(String ad_type_dynamic_data) {
this.ad_type_dynamic_data = ad_type_dynamic_data;
}
public String getAd_type_dynamic_detail() {
return ad_type_dynamic_detail;
}
public void setAd_type_dynamic_detail(String ad_type_dynamic_detail) {
this.ad_type_dynamic_detail = ad_type_dynamic_detail;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getChannelType() {
return channelType;
}
public void setChannelType(String channelType) {
this.channelType = channelType;
}
public String getShow_channel() {
return show_channel;
}
public void setShow_channel(String show_channel) {
this.show_channel = show_channel;
}
}
public static class Ad5Bean {
private String id;
private String image;
private int ad_type;
private int sort;
private int position;
private int enabled;
private String ad_type_dynamic;
private String ad_type_dynamic_data;
private String ad_type_dynamic_detail;
private String show_channel;
private String title;
private String url;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public int getAd_type() {
return ad_type;
}
public void setAd_type(int ad_type) {
this.ad_type = ad_type;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public int getEnabled() {
return enabled;
}
public void setEnabled(int enabled) {
this.enabled = enabled;
}
public String getAd_type_dynamic() {
return ad_type_dynamic;
}
public void setAd_type_dynamic(String ad_type_dynamic) {
this.ad_type_dynamic = ad_type_dynamic;
}
public String getAd_type_dynamic_data() {
return ad_type_dynamic_data;
}
public void setAd_type_dynamic_data(String ad_type_dynamic_data) {
this.ad_type_dynamic_data = ad_type_dynamic_data;
}
public String getAd_type_dynamic_detail() {
return ad_type_dynamic_detail;
}
public void setAd_type_dynamic_detail(String ad_type_dynamic_detail) {
this.ad_type_dynamic_detail = ad_type_dynamic_detail;
}
public String getShow_channel() {
return show_channel;
}
public void setShow_channel(String show_channel) {
this.show_channel = show_channel;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
public static class Ad8Bean {
private String id;
private String image;
private int ad_type;
private int sort;
private int position;
private int enabled;
private String description;
private String ad_type_dynamic;
private String ad_type_dynamic_data;
private String ad_type_dynamic_detail;
private String show_channel;
private String title;
private GoodsBean goods;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public int getAd_type() {
return ad_type;
}
public void setAd_type(int ad_type) {
this.ad_type = ad_type;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public int getEnabled() {
return enabled;
}
public void setEnabled(int enabled) {
this.enabled = enabled;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAd_type_dynamic() {
return ad_type_dynamic;
}
public void setAd_type_dynamic(String ad_type_dynamic) {
this.ad_type_dynamic = ad_type_dynamic;
}
public String getAd_type_dynamic_data() {
return ad_type_dynamic_data;
}
public void setAd_type_dynamic_data(String ad_type_dynamic_data) {
this.ad_type_dynamic_data = ad_type_dynamic_data;
}
public String getAd_type_dynamic_detail() {
return ad_type_dynamic_detail;
}
public void setAd_type_dynamic_detail(String ad_type_dynamic_detail) {
this.ad_type_dynamic_detail = ad_type_dynamic_detail;
}
public String getShow_channel() {
return show_channel;
}
public void setShow_channel(String show_channel) {
this.show_channel = show_channel;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public GoodsBean getGoods() {
return goods;
}
public void setGoods(GoodsBean goods) {
this.goods = goods;
}
public static class GoodsBean {
private int collect_count;
private boolean reservable;
private int restriction;
private int restrict_purchase_num;
private boolean is_coupon_allowed;
private int allocated_stock;
private int is_gift;
public int getCollect_count() {
return collect_count;
}
public void setCollect_count(int collect_count) {
this.collect_count = collect_count;
}
public boolean isReservable() {
return reservable;
}
public void setReservable(boolean reservable) {
this.reservable = reservable;
}
public int getRestriction() {
return restriction;
}
public void setRestriction(int restriction) {
this.restriction = restriction;
}
public int getRestrict_purchase_num() {
return restrict_purchase_num;
}
public void setRestrict_purchase_num(int restrict_purchase_num) {
this.restrict_purchase_num = restrict_purchase_num;
}
public boolean isIs_coupon_allowed() {
return is_coupon_allowed;
}
public void setIs_coupon_allowed(boolean is_coupon_allowed) {
this.is_coupon_allowed = is_coupon_allowed;
}
public int getAllocated_stock() {
return allocated_stock;
}
public void setAllocated_stock(int allocated_stock) {
this.allocated_stock = allocated_stock;
}
public int getIs_gift() {
return is_gift;
}
public void setIs_gift(int is_gift) {
this.is_gift = is_gift;
}
}
}
public static class DefaultGoodsListBean {
private String id;
private String goods_name;
private double shop_price;
private double market_price;
private String goods_img;
private boolean reservable;
private String efficacy;
private int stock_number;
private int restrict_purchase_num;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public double getShop_price() {
return shop_price;
}
public void setShop_price(double shop_price) {
this.shop_price = shop_price;
}
public double getMarket_price() {
return market_price;
}
public void setMarket_price(double market_price) {
this.market_price = market_price;
}
public String getGoods_img() {
return goods_img;
}
public void setGoods_img(String goods_img) {
this.goods_img = goods_img;
}
public boolean isReservable() {
return reservable;
}
public void setReservable(boolean reservable) {
this.reservable = reservable;
}
public String getEfficacy() {
return efficacy;
}
public void setEfficacy(String efficacy) {
this.efficacy = efficacy;
}
public int getStock_number() {
return stock_number;
}
public void setStock_number(int stock_number) {
this.stock_number = stock_number;
}
public int getRestrict_purchase_num() {
return restrict_purchase_num;
}
public void setRestrict_purchase_num(int restrict_purchase_num) {
this.restrict_purchase_num = restrict_purchase_num;
}
}
}
}
presenter
IPresenter
public interface IPresenter {
//p的请求数据
void showSkinToView(IModel iModel, IMainView iMainView);
//接受从m传上来的数据
void getData(List<SkinBean.DataBean.SubjectsBean> subjects);
//接受异常
void getError(String error);
}
PresenterFusion
public class PresenterFusion implements IPresenter {
private IMainView iMainView;
private String uri = "homepage";
@Override
public void showSkinToView(IModel iModel, IMainView iMainView) {
this.iMainView = iMainView;
//model请求数据
iModel.getSkin(uri);
}
@Override
public void getData(List<SkinBean.DataBean.SubjectsBean> subjects) {
iMainView.showSkin(subjects);
}
@Override
public void getError(String error) {
iMainView.showError(error);
}
}
util
ApiNetWork
public class ApiNetWork {
public static final String Base_Url = "http://result.eolinker.com/";
}
RetrofitUtil
mport com.google.gson.Gson;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Retrofit的工具类
*/
public class RetrofitUtil {
//单利模式
private static RetrofitUtil retrofitUtil;
private final Retrofit retrofit;
public static RetrofitUtil getInstance() {
if (retrofitUtil == null) {
retrofitUtil = new RetrofitUtil();
}
return retrofitUtil;
}
//初始化Retrofit
public RetrofitUtil() {
retrofit = new Retrofit.Builder()
.baseUrl(ApiNetWork.Base_Url)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.build();
}
//指定服务
public <T> T createRequest(Class<T> clz) {
T t = retrofit.create(clz);
return t;
}
}
view
lideImageLoader
import android.content.Context;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader;
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//Glide 加载图片简单用法
Glide.with(context).load(path).into(imageView);
}
}
IMainView
public interface IMainView {
void showSkin(List<SkinBean.DataBean.SubjectsBean> subjects);
void showError(String error);
}
MyAdapter
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<SkinBean.DataBean.SubjectsBean> data;
//判断条目的类型
private int ONE = 0;
private int TWO = 1;
public MyAdapter(Context context, List<SkinBean.DataBean.SubjectsBean> data) {
this.context = context;
this.data = data;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == ONE) {
View oview = LayoutInflater.from(context).inflate(R.layout.one_item, parent, false);
MyHolderone myHolderone = new MyHolderone(oview);
return myHolderone;
} else if (viewType == TWO) {
View tview = LayoutInflater.from(context).inflate(R.layout.two_item, parent, false);
MyHoldertwo myHoldertwo = new MyHoldertwo(tview);
return myHoldertwo;
}
return null;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof MyHolderone) {
((MyHolderone) holder).one_text.setText(data.get(position).getDetail());
Uri uri = Uri.parse(data.get(position).getDescImage());
((MyHolderone) holder).one_img.setImageURI(uri);
} else if (holder instanceof MyHoldertwo) {
((MyHoldertwo) holder).two_text.setText(data.get(position).getDetail());
Uri uri = Uri.parse(data.get(position).getDescImage());
((MyHoldertwo) holder).two_img.setImageURI(uri);
}
}
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {
return ONE;
} else {
return TWO;
}
}
@Override
public int getItemCount() {
return data.size();
}
}
MyApplication
import android.app.Application;
import com.facebook.drawee.backends.pipeline.Fresco;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
MyHolderone
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
public class MyHolderone extends RecyclerView.ViewHolder {
public TextView one_text;
public ImageView one_img;
public MyHolderone(View itemView) {
super(itemView);
one_text = itemView.findViewById(R.id.one_text);
one_img = itemView.findViewById(R.id.one_img);
}
}
MyHoldertwo
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MyHoldertwo extends RecyclerView.ViewHolder {
public TextView two_text;
public ImageView two_img;
public MyHoldertwo(View itemView) {
super(itemView);
two_text = itemView.findViewById(R.id.two_text);
two_img = itemView.findViewById(R.id.two_img);
}
}
MainActivity
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.TextView;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements IMainView {
private Banner main_banner;
private RecyclerView main_miao;
private PresenterFusion presenterFusion;
private MyAdapter myAdapter;
//倒计时用到的变量
private TextView tvHour;
private TextView tvMinute;
private TextView tvSecond;
static long mHour = 02;
static long mMin = 15;
boolean isRun = true;
static long mSecond = 36;
private Handler timeHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 1) {
//调用 倒计时计算的方法
computeTime();
if (mHour < 10) {
tvHour.setText("0" + mHour + "");
} else {
tvHour.setText(mHour + "");
}
if (mMin < 10) {
tvMinute.setText("0" + mMin + "");
} else {
tvMinute.setText(mMin + "");
}
if (mSecond < 10) {
tvSecond.setText("0" + mSecond + "");
} else {
tvSecond.setText(mSecond + "");
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
startRun();
initDatas();
initBanner();
}
private void initViews() {
main_banner = findViewById(R.id.main_banner);
main_miao = findViewById(R.id.main_miao);
//倒计时
tvHour = findViewById(R.id.tv_hour);
tvMinute = findViewById(R.id.tv_minute);
tvSecond = findViewById(R.id.tv_second);
}
public void initDatas(){
presenterFusion = new PresenterFusion();
presenterFusion.showSkinToView(new ModelFusion(presenterFusion),this);
}
private void initBanner() {
//设置banner样式...CIRCLE_INDICATOR_TITLE包含标题
main_banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//设置图片加载器
main_banner.setImageLoader(new GlideImageLoader());
//设置自动轮播,默认为true
main_banner.isAutoPlay(true);
//设置轮播时间
main_banner.setDelayTime(3000);
//设置指示器位置(当banner模式中有指示器时)
main_banner.setIndicatorGravity(BannerConfig.CENTER);
}
@Override
public void showSkin(List<SkinBean.DataBean.SubjectsBean> subjects) {
List<String> imgs = new ArrayList<>();
for (int i = 0; i < subjects.size(); i++) {
String image = subjects.get(i).getImage();
imgs.add(image);
}
main_banner.setImages(imgs);
main_banner.start();
main_miao.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false));
myAdapter = new MyAdapter(MainActivity.this,subjects);
main_miao.setAdapter(myAdapter);
}
@Override
public void showError(String error) {
}
/**
* 开启倒计时
*/
private void startRun() {
new Thread(new Runnable() {
@Override
public void run() {
while (isRun) {
try {
//睡眠一秒发送消息handler
Thread.sleep(1000);
Message message = Message.obtain();
message.what = 1;
//发送消息
timeHandler.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
//调用 倒计时计算的方法
/**
* 倒计时计算
*/
private static void computeTime() {
//首先把秒减1
mSecond--;
if (mSecond < 0) {//如果秒已经减到了0
mMin--;//分钟就减1
mSecond = 59;//秒变成 59
if (mMin < 0) {//如果分钟小于0
mMin = 59;//分钟变成59
mHour--;//小时减1
}
}
}
}