Api
package com.example.yf.dtm.api;
public class Api {
public static final String BASE_URL="http://172.17.8.100";
//首页商品信息列表
public static String SHOPLIST=BASE_URL+"/small/commodity/v1/commodityList";
public static String XBANNER=BASE_URL+"/small/commodity/v1/bannerShow";
//登录接口
public static String LOGIN=BASE_URL+"/small/user/v1/login";
public static String Zhu=BASE_URL+"/small/user/v1/register";
public static String HAHA= "http://api.expoon.com/AppNews/getNewsList/type/1/p?page=1";
public static String XIANG= "http://172.17.8.100/small/commodity/v1/findCommodityDetailsById";
}
bean
package com.example.yf.dtm.bean;
import java.io.Serializable;
import java.util.List;
public class ShowBean implements Serializable
{
public String message;
public String status;
public Product result;
public static class Product{
public List<ProductItemBean> rxxp;
public List<ProductItemBean> pzsh;
public List<ProductItemBean> mlss;
}
public class ProductItemBean {
public String id;
public String name;
public List<ProductItem> commodityList;
public class ProductItem{
public String commodityId;
public String commodityName;
public String masterPic;
public String price;
public String saleNum;
}
}
/**
* result : {"rxxp":[{"commodityList":[{"commodityId":27,"commodityName":"休闲马衔扣保暖绒里棉鞋懒人鞋毛毛鞋平底女雪地靴女短靴子豆豆鞋女鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/ddx/3/1.jpg","price":139,"saleNum":0},{"commodityId":21,"commodityName":"【加绒休闲 舒适轻便】秋冬增高休闲鞋厚底棉鞋运动户外通勤简约韩版女鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/bx/4/1.jpg","price":189,"saleNum":0},{"commodityId":5,"commodityName":"双头两用修容笔","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/3/1.jpg","price":39,"saleNum":156}],"id":1002,"name":"热销新品"}],"pzsh":[{"commodityList":[{"commodityId":6,"commodityName":"轻柔系自然裸妆假睫毛","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/4/1.jpg","price":39,"saleNum":0},{"commodityId":15,"commodityName":"玻儿精灵美妆蛋一个","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/mzgj/5/1.jpg","price":6,"saleNum":0},{"commodityId":7,"commodityName":"蓝色之恋","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/5/1.jpg","price":29,"saleNum":0},{"commodityId":3,"commodityName":"Lara style女神的魔盒全套彩妆","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/1/1.jpg","price":3499,"saleNum":2000}],"id":1004,"name":"品质生活"}],"mlss":[{"commodityList":[{"commodityId":32,"commodityName":"唐狮女鞋冬季女鞋休闲鞋子女士女鞋百搭帆布鞋女士休闲鞋子女款板鞋休闲女鞋帆布鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/fbx/1/1.jpg","price":88,"saleNum":0},{"commodityId":18,"commodityName":"白色经典 秋季新款简约百搭轻便休闲女鞋板鞋小白鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/bx/1/1.jpg","price":79,"saleNum":0}],"id":1003,"name":"魔力时尚"}]}
* message : 查询成功
* status : 0000
*/
/* private ResultBean result;
private String message;
private String status;
public ResultBean getResult() {
return result;
}
public void setResult(ResultBean result) {
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public static class ResultBean {
private List<RxxpBean> rxxp;
private List<RxxpBean> pzsh;
private List<RxxpBean> mlss;
public List<RxxpBean> getRxxp() {
return rxxp;
}
public void setRxxp(List<RxxpBean> rxxp) {
this.rxxp = rxxp;
}
public List<PzshBean> getPzsh() {
return pzsh;
}
public void setPzsh(List<PzshBean> pzsh) {
this.pzsh = pzsh;
}
public List<MlssBean> getMlss() {
return mlss;
}
public void setMlss(List<MlssBean> mlss) {
this.mlss = mlss;
}
public static class RxxpBean {
*//**
* commodityList : [{"commodityId":27,"commodityName":"休闲马衔扣保暖绒里棉鞋懒人鞋毛毛鞋平底女雪地靴女短靴子豆豆鞋女鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/ddx/3/1.jpg","price":139,"saleNum":0},{"commodityId":21,"commodityName":"【加绒休闲 舒适轻便】秋冬增高休闲鞋厚底棉鞋运动户外通勤简约韩版女鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/bx/4/1.jpg","price":189,"saleNum":0},{"commodityId":5,"commodityName":"双头两用修容笔","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/3/1.jpg","price":39,"saleNum":156}]
* id : 1002
* name : 热销新品
*//*
private int id;
private String name;
private List<CommodityListBean> commodityList;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<CommodityListBean> getCommodityList() {
return commodityList;
}
public void setCommodityList(List<CommodityListBean> commodityList) {
this.commodityList = commodityList;
}
public static class CommodityListBean {
*//**
* commodityId : 27
* commodityName : 休闲马衔扣保暖绒里棉鞋懒人鞋毛毛鞋平底女雪地靴女短靴子豆豆鞋女鞋
* masterPic : http://172.17.8.100/images/small/commodity/nx/ddx/3/1.jpg
* price : 139
* saleNum : 0
*//*
private int commodityId;
private String commodityName;
private String masterPic;
private int price;
private int saleNum;
public int getCommodityId() {
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getMasterPic() {
return masterPic;
}
public void setMasterPic(String masterPic) {
this.masterPic = masterPic;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSaleNum() {
return saleNum;
}
public void setSaleNum(int saleNum) {
this.saleNum = saleNum;
}
}
}
public static class PzshBean {
*//**
* commodityList : [{"commodityId":6,"commodityName":"轻柔系自然裸妆假睫毛","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/4/1.jpg","price":39,"saleNum":0},{"commodityId":15,"commodityName":"玻儿精灵美妆蛋一个","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/mzgj/5/1.jpg","price":6,"saleNum":0},{"commodityId":7,"commodityName":"蓝色之恋","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/5/1.jpg","price":29,"saleNum":0},{"commodityId":3,"commodityName":"Lara style女神的魔盒全套彩妆","masterPic":"http://172.17.8.100/images/small/commodity/mzhf/cz/1/1.jpg","price":3499,"saleNum":2000}]
* id : 1004
* name : 品质生活
*//*
private int id;
private String name;
private List<CommodityListBeanX> commodityList;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<CommodityListBeanX> getCommodityList() {
return commodityList;
}
public void setCommodityList(List<CommodityListBeanX> commodityList) {
this.commodityList = commodityList;
}
public static class CommodityListBeanX {
*//**
* commodityId : 6
* commodityName : 轻柔系自然裸妆假睫毛
* masterPic : http://172.17.8.100/images/small/commodity/mzhf/cz/4/1.jpg
* price : 39
* saleNum : 0
*//*
private int commodityId;
private String commodityName;
private String masterPic;
private int price;
private int saleNum;
public int getCommodityId() {
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getMasterPic() {
return masterPic;
}
public void setMasterPic(String masterPic) {
this.masterPic = masterPic;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSaleNum() {
return saleNum;
}
public void setSaleNum(int saleNum) {
this.saleNum = saleNum;
}
}
}
public static class MlssBean {
*//**
* commodityList : [{"commodityId":32,"commodityName":"唐狮女鞋冬季女鞋休闲鞋子女士女鞋百搭帆布鞋女士休闲鞋子女款板鞋休闲女鞋帆布鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/fbx/1/1.jpg","price":88,"saleNum":0},{"commodityId":18,"commodityName":"白色经典 秋季新款简约百搭轻便休闲女鞋板鞋小白鞋","masterPic":"http://172.17.8.100/images/small/commodity/nx/bx/1/1.jpg","price":79,"saleNum":0}]
* id : 1003
* name : 魔力时尚
*//*
private int id;
private String name;
private List<CommodityListBeanXX> commodityList;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<CommodityListBeanXX> getCommodityList() {
return commodityList;
}
public void setCommodityList(List<CommodityListBeanXX> commodityList) {
this.commodityList = commodityList;
}
public static class CommodityListBeanXX {
*//**
* commodityId : 32
* commodityName : 唐狮女鞋冬季女鞋休闲鞋子女士女鞋百搭帆布鞋女士休闲鞋子女款板鞋休闲女鞋帆布鞋
* masterPic : http://172.17.8.100/images/small/commodity/nx/fbx/1/1.jpg
* price : 88
* saleNum : 0
*//*
private int commodityId;
private String commodityName;
private String masterPic;
private int price;
private int saleNum;
public int getCommodityId() {
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getMasterPic() {
return masterPic;
}
public void setMasterPic(String masterPic) {
this.masterPic = masterPic;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSaleNum() {
return saleNum;
}
public void setSaleNum(int saleNum) {
this.saleNum = saleNum;
}
}
}
}*/
}
写http
package com.example.yf.dtm.okhttp;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import com.google.gson.Gson;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.Cache;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class HttpUtils {
private static final String TAG = "HttpUtils";
private static volatile HttpUtils instance;
public Handler handler = new Handler();
private OkHttpClient client;
private Interceptor getAppInterceptor(){
//添加拦截器
Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Log.e("++++++++++","拦截前");
//---------请求之前------------
Response response = chain.proceed(request);
Log.e("++++++++++","拦截后");
//---------请求之后------------
return response;
}
};
return interceptor;
}
private HttpUtils() {
File file = new File(Environment.getExternalStorageDirectory(), "cache11");
client = new OkHttpClient().newBuilder()
.readTimeout(3000, TimeUnit.SECONDS) //设置读取超时时间
.connectTimeout(3000, TimeUnit.SECONDS) //设置连接的超时时间
.addInterceptor(getAppInterceptor())//Application拦截器
.cache(new Cache(file, 10 * 1024))
.build();
}
//单例okhttp
public static HttpUtils getInstance() {
if (instance == null) {
synchronized (HttpUtils.class) {
if(null == instance) {
instance = new HttpUtils();
}
}
}
return instance;
}
public void doGet(String url, final Class clazz, final NetCallBack netCallBack) {
// 2. 创建一个请求对象
Request request = new Request.Builder()
.get()
.url(url)
.build();
// 3. 创建出一个Call对象
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() {
netCallBack.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
Gson gson = new Gson();
final Object oj = gson.fromJson(result, clazz);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.onSuccess(oj);
}
});
}
});
}
public void doPost(String url, final Class clazz, Map<String,String> parms, final NetCallBack netCallBack){
FormBody.Builder body = new FormBody.Builder();
//key value
for (String key:parms.keySet()){
//value的值
body.add(key,parms.get(key));
}
Request request = new Request.Builder()
.url(url)
.post(body.build())
.build();
// 3. 创建出一个Call对象
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() {
netCallBack.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// 注意:response.body()只能用一次
// Log.i(TAG, "onResponse: "+response.body().string());
String result = response.body().string();
Gson gson = new Gson();
final Object oj = gson.fromJson(result, clazz);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.onSuccess(oj);
}
});
}
});
}
public interface NetCallBack {
void onSuccess(Object oj);
void onFailure(Exception e);
}
}
package com.example.yf.dtm.okhttp;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OkHttp3 {
private static OkHttpClient okHttpClient;
private static Request request;
private static FormBody builder;
public static void okHttpGet(String url, final GetBackGet getBackGet){
okHttpClient = new OkHttpClient();
request = new Request.Builder().url(url).method("GET", null).build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
getBackGet.getTrue(response.body().string());
}
});
}
public static void okHttpPost(final String url, final String name, final String pwd, final GetBackPost getBackPost){
okHttpClient = new OkHttpClient();
builder = new FormBody.Builder().add("phone", name).add("pwd", pwd).build();
//创建request
request = new Request
.Builder()
.url(url)
.post(builder)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
getBackPost.getTrue("出错了");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
getBackPost.getTrue(response.body().string());
}
});
}
//自定义接口
public interface GetBackGet{
public void getTrue(String succ);
}
public interface GetBackPost{
public void getTrue(String succ);
}
}
创建Mvp
model层
package com.example.yf.dtm.model;
import android.util.Log;
import com.example.yf.dtm.bean.ShowBean;
import com.example.yf.dtm.okhttp.HttpUtils;
import com.example.yf.dtm.okhttp.OkHttp3;
public class Model implements IModel{
@Override
public void getdata(String url, final Callback callback) {
HttpUtils.getInstance().doGet(url, ShowBean.class, new HttpUtils.NetCallBack() {
@Override
public void onSuccess(Object oj) {
callback.Success(oj);
}
@Override
public void onFailure(Exception e) {
}
});
}
@Override
public void getdataimg(String url, final Callbackimg callbackimg) {
OkHttp3.okHttpGet(url,new OkHttp3.GetBackGet() {
@Override
public void getTrue(String succ) {
callbackimg.Success(succ);
Log.i("getTrue",succ);
}
});
}
}
model接口
package com.example.yf.dtm.model;
import javax.security.auth.callback.Callback;
public interface IModel {
void getdata(String url, Callback callback);
interface Callback{
void Success(Object oj);
}
void getdataimg(String url,Callbackimg callbackimg);
interface Callbackimg{
void Success(String oj);
}
}
presenter层
package com.example.yf.dtm.presenter;
import com.example.yf.dtm.api.Api;
import com.example.yf.dtm.fragment.FragmentOne;
import com.example.yf.dtm.model.IModel;
import com.example.yf.dtm.model.Model;
public class Presenter implements IPresenter{
FragmentOne fragmentOne;
private final Model model;
public Presenter(FragmentOne fragmentOne) {
this.fragmentOne = fragmentOne;
model = new Model();
}
//数据
@Override
public void getshowmodeldata() {
model.getdata(Api.SHOPLIST, new IModel.Callback() {
@Override
public void Success(Object oj) {
fragmentOne.getPredata(oj);
}
});
}
//图片
@Override
public void getmodelimagedata(String url) {
model.getdataimg(url, new IModel.Callbackimg() {
@Override
public void Success(String oj) {
fragmentOne.getPredata(oj);
}
});
}
}
presenter接口
package com.example.yf.dtm.presenter;
public interface IPresenter {
void getshowmodeldata();
void getmodelimagedata(String url);
}
view接口
package com.example.yf.dtm.view;
public interface IView {
void getPredata(String data);
}
mainactivity
package com.example.yf.dtm;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toolbar;
import com.example.yf.dtm.fragment.FragmentFive;
import com.example.yf.dtm.fragment.FragmentFour;
import com.example.yf.dtm.fragment.FragmentOne;
import com.example.yf.dtm.fragment.FragmentThree;
import com.example.yf.dtm.fragment.FragmentTwo;
import com.hjm.bottomtabbar.BottomTabBar;
public class MainActivity extends AppCompatActivity {
private BottomTabBar fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragment = findViewById(R.id.fragment);
fragment.init(getSupportFragmentManager())
.setImgSize(50, 50)
.setFontSize(8)
.setTabPadding(4, 6, 10)
.setChangeColor(Color.RED, Color.DKGRAY)
.addTabItem("首页", R.drawable.ufos, FragmentOne.class)
.addTabItem("分类", R.drawable.fangs, FragmentTwo.class)
.addTabItem("发现", R.drawable.my, FragmentThree.class)
.addTabItem("购物车", R.drawable.ufos, FragmentFour.class)
.addTabItem("我的", R.drawable.my, FragmentFive.class)
.isShowDivider(false);
}
}
第一个fragment
package com.example.yf.dtm.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.example.yf.dtm.R;
import com.example.yf.dtm.adapter.MyAdapter;
import com.example.yf.dtm.bean.NewsBeanTwo;
import com.example.yf.dtm.bean.ShowBean;
import com.example.yf.dtm.presenter.Presenter;
import com.example.yf.dtm.view.IView;
import com.google.gson.Gson;
import com.stx.xhb.xbanner.XBanner;
import com.stx.xhb.xbanner.transformers.Transformer;
import java.util.ArrayList;
import java.util.List;
public class FragmentOne extends Fragment implements IView {
private RecyclerView recy;
private Presenter presenter;
private String name;
private XBanner xbanner;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.one, container, false);
recy = view.findViewById(R.id.recy);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
recy.setLayoutManager(linearLayoutManager);
presenter = new Presenter(this);
presenter.getmodelimagedata("http://172.17.8.100/small/commodity/v1/bannerShow");
presenter.getshowmodeldata();
xbanner = view.findViewById(R.id.xbanner);
return view;
}
public void getPredata(Object oj) {
ShowBean showBean = (ShowBean) oj;
// name = showBean.result.mlss.get(0).name;
// Log.i("aaa","getData"+name);
List<ShowBean.ProductItemBean> list = new ArrayList<>();
list.addAll(showBean.result.rxxp);
list.addAll(showBean.result.pzsh);
list.addAll(showBean.result.mlss);
MyAdapter myAdapter = new MyAdapter(getActivity(),list);
recy.setAdapter(myAdapter);
}
@Override
public void getPredata( final String data) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
final List<String>list = new ArrayList<>();
NewsBeanTwo two = gson.fromJson(data, NewsBeanTwo.class);
List<NewsBeanTwo.ResultBean>result = two.getResult();
for (int i = 0; i < result.size(); i++) {
list.add(result.get(i).getImageUrl());
}
xbanner.setData(list,null);
xbanner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(getActivity()).load(list.get(position)).into((ImageView) view);
}
});
xbanner.setPageTransformer(Transformer.Default);
xbanner.setPageChangeDuration(1000);
}
});
}
}
再写4个adapter,一个总的3个副的
package com.example.yf.dtm.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.yf.dtm.R;
import com.example.yf.dtm.bean.ShowBean;
import java.util.List;
import java.util.zip.Inflater;
public class OneAdapter extends RecyclerView.Adapter<OneAdapter.HlistViewHodel>{
Context context;
List<ShowBean.ProductItemBean.ProductItem> list;
public OneAdapter(Context context, List<ShowBean.ProductItemBean.ProductItem> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public HlistViewHodel onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View mView;
mView=View.inflate(viewGroup.getContext(),R.layout.adapterone,null);
return new HlistViewHodel(mView);
}
@NonNull
@Override
public void onBindViewHolder(@NonNull final HlistViewHodel hlistViewHodel, final int i) {
hlistViewHodel.name.setText(list.get(i).commodityName);
hlistViewHodel.price.setText(list.get(i).price);
Glide.with(context).load(list.get(i).masterPic).into(hlistViewHodel.img);
}
@Override
public int getItemCount() {
return list.size();
}
public class HlistViewHodel extends RecyclerView.ViewHolder {
ImageView img;
TextView name;
TextView price;
public HlistViewHodel(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
price = itemView.findViewById(R.id.price);
name = itemView.findViewById(R.id.name);
}
}
}
第二个adapter
package com.example.yf.dtm.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.yf.dtm.R;
import com.example.yf.dtm.bean.ShowBean;
import java.util.List;
public class TwoAdapter extends RecyclerView.Adapter<TwoAdapter.TwoViewHolder> {
Context context;
List<ShowBean.ProductItemBean.ProductItem>list;
public TwoAdapter(Context context, List<ShowBean.ProductItemBean.ProductItem> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public TwoViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View mView;
mView = View.inflate(viewGroup.getContext(), R.layout.adapterone, null);
return new TwoViewHolder(mView);
}
@NonNull
@Override
public void onBindViewHolder(@NonNull final TwoViewHolder twoViewHolder,final int i) {
twoViewHolder.name.setText(list.get(i).commodityName);
twoViewHolder.price.setText(list.get(i).price);
Glide.with(context).load(list.get(i).masterPic).into(twoViewHolder.img);
}
@Override
public int getItemCount() {
return list.size();
}
public class TwoViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView name;
TextView price;
public TwoViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
price = itemView.findViewById(R.id.price);
name = itemView.findViewById(R.id.name);
}
}
}
第三个adapter
package com.example.yf.dtm.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.yf.dtm.R;
import com.example.yf.dtm.bean.ShowBean;
import java.util.List;
public class ThreeAdapter extends RecyclerView.Adapter<ThreeAdapter.ThreeViewHolder> {
Context context;
List<ShowBean.ProductItemBean.ProductItem> commodityList1;
public ThreeAdapter(Context context, List<ShowBean.ProductItemBean.ProductItem> commodityList1) {
this.context = context;
this.commodityList1 = commodityList1;
}
@NonNull
@Override
public ThreeViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.adapterthree, null);
ThreeViewHolder threeViewHolder = new ThreeViewHolder(view);
return threeViewHolder;
}
@Override
public void onBindViewHolder(@NonNull ThreeViewHolder threeViewHolder, int i) {
threeViewHolder.name.setText(commodityList1.get(i).commodityName);
threeViewHolder.price.setText(commodityList1.get(i).price);
Glide.with(context).load(commodityList1.get(i).masterPic).into(threeViewHolder.img);
}
@Override
public int getItemCount() {
return commodityList1.size();
}
public class ThreeViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView name;
TextView price;
public ThreeViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
price = itemView.findViewById(R.id.price);
name = itemView.findViewById(R.id.name);
}
}
}
总adapter
package com.example.yf.dtm.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.yf.dtm.R;
import com.example.yf.dtm.bean.ShowBean;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter {
Context context;
private final int RXXP_VIEW = 1;
private final int PZSH_VIEW = 2;
private final int MLSS_VIEW = 3;
private List<ShowBean.ProductItemBean> resultBeans;
private List<ShowBean.ProductItemBean.ProductItem> commodityList1;
private OneAdapter hListAdapter;
private TwoAdapter twoListAdapter;
private ThreeAdapter sanListAdapter;
private Intent intent;
private List<ShowBean.ProductItemBean.ProductItem> commodityList;
private OneAdapter oneAdapter;
public MyAdapter(Context context, List<ShowBean.ProductItemBean> resultBeans) {
this.context = context;
this.resultBeans = resultBeans;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View mView;
if(i==RXXP_VIEW)
{
mView=View.inflate(viewGroup.getContext(),R.layout.item1,null);
return new Item1ViewHolder(mView);
}else if(i == PZSH_VIEW)
{
return new Item2ViewHolder(LayoutInflater.from(context).inflate(R.layout.item2,viewGroup,false));
}
else {
return new Item3ViewHolder(LayoutInflater.from(context).inflate(R.layout.item3,viewGroup,false));
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
if(viewHolder instanceof Item1ViewHolder)
{
((Item1ViewHolder) viewHolder).rxxp.setText(resultBeans.get(i).name);
commodityList1 = resultBeans.get(i).commodityList;
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false);
((Item1ViewHolder) viewHolder).rv.setLayoutManager(linearLayoutManager);
hListAdapter = new OneAdapter(context,commodityList1);
((Item1ViewHolder) viewHolder).rv.setAdapter(hListAdapter);
}
if(viewHolder instanceof Item2ViewHolder)
{
((Item2ViewHolder) viewHolder).pzsh.setText(resultBeans.get(i).name);
commodityList1 = resultBeans.get(i).commodityList;
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false);
((Item2ViewHolder) viewHolder).rv2.setLayoutManager(linearLayoutManager);
twoListAdapter = new TwoAdapter(context,commodityList1);
((Item2ViewHolder) viewHolder).rv2.setAdapter(twoListAdapter);
}
if(viewHolder instanceof Item3ViewHolder)
{
((Item3ViewHolder) viewHolder).mlss.setText(resultBeans.get(i).name);
commodityList1 = resultBeans.get(i).commodityList;
GridLayoutManager gridLayoutManager = new GridLayoutManager(context,2);
gridLayoutManager.setOrientation(OrientationHelper.VERTICAL);
((Item3ViewHolder) viewHolder).rv3.setLayoutManager(gridLayoutManager);
sanListAdapter = new ThreeAdapter(context,commodityList1);
((Item3ViewHolder) viewHolder).rv3.setAdapter(sanListAdapter);
}
}
@Override
public int getItemCount() {
return resultBeans.size();
}
class Item1ViewHolder extends RecyclerView.ViewHolder {
RecyclerView rv;
TextView rxxp;
public Item1ViewHolder(@NonNull View itemView) {
super(itemView);
rv = itemView.findViewById(R.id.rv);
rxxp = itemView.findViewById(R.id.rxxptv);
}
}
class Item2ViewHolder extends RecyclerView.ViewHolder {
RecyclerView rv2;
TextView pzsh;
public Item2ViewHolder(@NonNull View itemView) {
super(itemView);
rv2 = itemView.findViewById(R.id.rv);
pzsh = itemView.findViewById(R.id.pzshtv);
}
}
class Item3ViewHolder extends RecyclerView.ViewHolder {
RecyclerView rv3;
TextView mlss;
public Item3ViewHolder(@NonNull View itemView) {
super(itemView);
rv3 = itemView.findViewById(R.id.rv);
mlss = itemView.findViewById(R.id.mlsstv);
}
}
}