utils包
Comm类
public class Comm implements Interceptor{ @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); String method = request.method(); if ("GET".equals(method)){ String oldUrl = request.url().toString(); String newUrl = oldUrl + "&source=android"; request = new Request.Builder() .url(newUrl) .build(); }else if ("POST".equals(method)){ String path = request.url().toString(); FormBody oldBody = (FormBody) request.body(); FormBody.Builder body = new FormBody.Builder(); for (int i = 0 ; i < oldBody.size() ; i++){ String name = oldBody.name(i); String value = oldBody.value(i); body.add(name,value); } body.add("source","android"); request = new Request.Builder() .post(body.build()) .url(path) .build(); } return chain.proceed(request); } }
OkHttpUtils类
public class OkHttpUtils { private static OkHttpUtils OK_HTTP_UTILS = null; private Handler handler = new Handler(); private OkHttpUtils() {} public static OkHttpUtils getIndata(){ if (OK_HTTP_UTILS == null){ synchronized (OkHttpUtils.class){ if (OK_HTTP_UTILS == null){ OK_HTTP_UTILS = new OkHttpUtils(); } } } return OK_HTTP_UTILS; } public void doGet(String path, Map<String,String> map, final OnFinishListener onFinishListener){ StringBuffer sb = new StringBuffer(); sb.append(path); if (sb.indexOf("?") != -1){ if (sb.indexOf("?") != sb.length()-1 ){ sb.append("&"); } }else { sb.append("?"); } for (Map.Entry<String,String> m : map.entrySet()) { sb.append(m.getKey()) .append("=") .append(m.getValue()) .append("&"); } if (sb.lastIndexOf("&") != -1){ sb.deleteCharAt(sb.length()-1); } OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new Comm()) .build(); Request request = new Request.Builder() .get() .url(sb.toString()) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, final Response response) throws IOException { if (response.isSuccessful()){ final String result = response.body().string(); handler.post(new Runnable() { @Override public void run() { onFinishListener.onSuccess(result); } }); }else { handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(response.message()); } }); } } }); } public void doPost(String path, Map<String,String> map, final OnFinishListener onFinishListener){ OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new Comm()) .build(); FormBody.Builder body = new FormBody.Builder(); for (String key : map.keySet()) { body.add(key,map.get(key)); } Request request = new Request.Builder() .post(body.build()) .url(path) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, final Response response) throws IOException { if (response.isSuccessful()){ final String result = response.body().string(); handler.post(new Runnable() { @Override public void run() { onFinishListener.onSuccess(result); } }); }else { handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(response.message()); } }); } } }); } }OnFinishListener接口
public interface OnFinishListener { void onFailed(String str); void onSuccess(Object obj); }接口Constans类public class Constans { public static final String HOST_NAME = "https://www.zhaoapi.cn"; public static final String LEFT_URL = HOST_NAME + "/product/getCatagory"; public static final String RIGHT_URL = HOST_NAME + "/product/getProductCatagory"; }fragment包
public class Fragment2 extends Fragment implements IFragment02 { private Fragment02Persentere persentere; private Map<String, String> leftMap; private Map<String, String> rightMap; private LeftAdapter leftAdapter; private List<LeftSuperClass.DataBean> data; private RightAdapter rightAdapter; private RecyclerView mLeftRecycle; private RecyclerView mRightRecycle; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment02, container, false); initView(view); persentere = new Fragment02Persentere(this); persentere.left(Constans.LEFT_URL, leftMap); mLeftRecycle.setAdapter(leftAdapter); leftAdapter.setOnItemClickListner(new LeftAdapter.OnItemClickListner() { @Override public void onItemClick(View view, int cid) { // rightMap.clear(); rightMap.put("cid",cid + ""); persentere.right(Constans.RIGHT_URL,rightMap); } }); mRightRecycle.setAdapter(rightAdapter); return view; } @Override public void onFailed(String str) { Toast.makeText(getActivity(), str, Toast.LENGTH_LONG).show(); } @Override public void onLeftSuccess(List<LeftSuperClass.DataBean> list) { this.data = list; leftAdapter.setList(data); //右侧默认展示数据 rightMap.put("cid",data.get(0).getCid() + ""); persentere.right(Constans.RIGHT_URL,rightMap); } @Override public void onRightSuccess(List<RightSuperClass.DataBean> list) { rightAdapter.setList(list); } private void initView(View view) { mLeftRecycle = (RecyclerView) view.findViewById(R.id.left_recycle); mRightRecycle = (RecyclerView) view.findViewById(R.id.right_recycle); mLeftRecycle.setLayoutManager(new LinearLayoutManager(getActivity())); // mLeftRecycle.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); mRightRecycle.setLayoutManager(new LinearLayoutManager(getActivity())); //mRightRecycle.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); leftAdapter = new LeftAdapter(getActivity()); rightAdapter = new RightAdapter(getActivity()); leftMap = new HashMap<>(); rightMap = new HashMap<>(); } }RightAdapterIFragment02接口
public interface IFragment02 { void onFailed(String str); void onLeftSuccess(List<LeftSuperClass.DataBean> list); void onRightSuccess(List<RightSuperClass.DataBean> list); }model包Fragment2Model类public class Fragment2Model implements IFragment2Model{ private OkHttpUtils okHttpUtils; @Override public void left(String path, Map<String, String> map, final IFragment02Persentere iTotalPresenter) { okHttpUtils = OkHttpUtils.getIndata(); okHttpUtils.doGet(path, map, new OnFinishListener() { @Override public void onFailed(String str) { iTotalPresenter.onFailed(str); } @Override public void onSuccess(Object obj) { Gson gson = new Gson(); LeftSuperClass leftSuperClass = gson.fromJson(obj.toString(), LeftSuperClass.class); iTotalPresenter.onLeftSuccess(leftSuperClass.getData()); } }); } @Override public void right(String path, Map<String, String> map, final IFragment02Persentere iTotalPresenter) { okHttpUtils = OkHttpUtils.getIndata(); okHttpUtils.doGet(path, map, new OnFinishListener() { @Override public void onFailed(String str) { iTotalPresenter.onFailed(str); } @Override public void onSuccess(Object obj) { Gson gson = new Gson(); RightSuperClass rightSuperClass = gson.fromJson(obj.toString(), RightSuperClass.class); iTotalPresenter.onRightSuccess(rightSuperClass.getData()); } }); } }IFragment2Model接口public interface IFragment2Model { void left(String path, Map<String,String> map , IFragment02Persentere iTotalPresenter); void right(String path, Map<String,String> map , IFragment02Persentere iTotalPresenter); }Adapter包
LeftAdapter类
public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.ViewHolder> { private List<LeftSuperClass.DataBean> list; private Context context; private int index = 0; private OnItemClickListner onItemClickListner; public LeftAdapter(Context context) { this.context = context; } public void setList(List<LeftSuperClass.DataBean> list) { this.list = list; notifyDataSetChanged(); } public void setOnItemClickListner(OnItemClickListner onItemClickListner) { this.onItemClickListner = onItemClickListner; } @Override public LeftAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.text_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(LeftAdapter.ViewHolder holder, final int position) { if (index == position){ holder.left_title.setTextColor(Color.RED); holder.left_title.setBackgroundColor(Color.parseColor("#eeeeee")); }else { holder.left_title.setTextColor(Color.BLACK); holder.left_title.setBackgroundColor(Color.WHITE); } holder.left_title.setText(list.get(position).getName()); holder.left_title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListner.onItemClick(v,list.get(position).getCid()); index = position; notifyDataSetChanged(); } }); } @Override public int getItemCount() { return list != null ? list.size() : 0; } class ViewHolder extends RecyclerView.ViewHolder{ private TextView left_title; public ViewHolder(View itemView) { super(itemView); left_title = itemView.findViewById(R.id.left_title); } } public interface OnItemClickListner{ void onItemClick(View view, int cid); } }RightAdapter 类
public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder> { private List<RightSuperClass.DataBean> list; private Context context; private MyAdapter adapter; public RightAdapter(Context context) { this.context = context; } public void setList(List<RightSuperClass.DataBean> list) { this.list = list; notifyDataSetChanged(); } @Override public RightAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.group_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(RightAdapter.ViewHolder holder, int position) { holder.textView.setText(list.get(position).getName()); Log.i("TAG",list.get(position).getName()+"-----------------------"); // List<RightSuperClass.DataBean.ListBean> list = this.list.get(position).getList(); holder.recyclerView.setLayoutManager(new GridLayoutManager(context,3)); adapter = new MyAdapter(context); adapter.setList(list.get(position).getList()); holder.recyclerView.setAdapter(adapter); //跳转 adapter.setCallBackPos(new MyAdapter.CallBackPos() { @Override public void callBack(int pos) { //得到点击条目的下标 //跳转到另一个页面 context.startActivity(new Intent(context,Main2Activity.class)); } }); } @Override public int getItemCount() { return list != null ? list.size() : 0; } class ViewHolder extends RecyclerView.ViewHolder{ public TextView textView; public RecyclerView recyclerView; public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.item_title); recyclerView = itemView.findViewById(R.id.item_list); } } }MyAdapter 类public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<RightSuperClass.DataBean.ListBean> list; private Context context; public MyAdapter(Context context) { this.context = context; } public void setList(List<RightSuperClass.DataBean.ListBean> list) { this.list = list; notifyDataSetChanged(); Log.e("=======","--"+list.size()); } @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false); final ViewHolder holder = new ViewHolder(view); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = holder.getLayoutPosition(); callBackPos.callBack(position); } }); return holder; } @Override public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) { holder.textView.setText(list.get(position).getName()); // ImageLoader.getInstance().displayImage(list.get(position).getIcon(),holder.img); Glide.with(context).load(list.get(position).getIcon()).into(holder.img); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ public TextView textView; public ImageView img; public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.mytitle); img = itemView.findViewById(R.id.myimg); } } public interface CallBackPos{ void callBack(int pos); } CallBackPos callBackPos; public void setCallBackPos(CallBackPos callBackPos) { this.callBackPos = callBackPos; } }bean包LeftSuperClasspublic class LeftSuperClass { /** * msg : * code : 0 * data : [{"cid":1,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/shop.png","ishome":1,"name":"京东超市"},{"cid":2,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/qqg.png","ishome":1,"name":"全球购"},{"cid":3,"createtime":"2017-10-10T19:45:11","icon":"http://120.27.23.105/images/category/phone.png","ishome":1,"name":"手机数码"},{"cid":5,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/man.png","ishome":1,"name":"男装"},{"cid":6,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girl.png","ishome":1,"name":"女装"},{"cid":7,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/manshoe.png","ishome":1,"name":"男鞋"},{"cid":8,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girlshoe.png","ishome":1,"name":"女鞋"},{"cid":9,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/shirt.png","ishome":1,"name":"内衣配饰"},{"cid":10,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/bag.png","ishome":1,"name":"箱包手袋"},{"cid":11,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/beauty.png","ishome":1,"name":"美妆个护"},{"cid":12,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/jewel.png","ishome":1,"name":"钟表珠宝"},{"cid":13,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/luxury.png","ishome":1,"name":"奢侈品"},{"cid":14,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/computer.png","ishome":1,"name":"电脑办公"},{"cid":15,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"家用电器"},{"cid":16,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"食品生鲜"},{"cid":17,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"酒水饮料"},{"cid":18,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"母婴童装"},{"cid":19,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"玩具乐器"},{"cid":20,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"医药保健"}] */ private String msg; private String code; private List<DataBean> 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 List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * cid : 1 * createtime : 2017-10-10T19:41:39 * icon : http://120.27.23.105/images/category/shop.png * ishome : 1 * name : 京东超市 */ private int cid; private String createtime; private String icon; private int ishome; private String name; public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } 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 int getIshome() { return ishome; } public void setIshome(int ishome) { this.ishome = ishome; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }RightSuperClasspublic class RightSuperClass { /** * msg : 获取子分类成功 * code : 0 * data : [{"cid":"3","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"耳机/耳麦","pcid":10,"pscid":61},{"icon":"http://120.27.23.105/images/icon.png","name":"音箱/音响","pcid":10,"pscid":62},{"icon":"http://120.27.23.105/images/icon.png","name":"MP3/MP4","pcid":10,"pscid":63},{"icon":"http://120.27.23.105/images/icon.png","name":"便携/无线音箱","pcid":10,"pscid":64},{"icon":"http://120.27.23.105/images/icon.png","name":"麦克风","pcid":10,"pscid":65}],"name":"影音娱乐","pcid":"10"},{"cid":"3","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"游戏手机","pcid":11,"pscid":66},{"icon":"http://120.27.23.105/images/icon.png","name":"拍照手机","pcid":11,"pscid":67},{"icon":"http://120.27.23.105/images/icon.png","name":"大屏手机","pcid":11,"pscid":68},{"icon":"http://120.27.23.105/images/icon.png","name":"老人机","pcid":11,"pscid":69},{"icon":"http://120.27.23.105/images/icon.png","name":"对讲机","pcid":11,"pscid":70}],"name":"手机通讯","pcid":"11"},{"cid":"3","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"蓝牙耳机","pcid":12,"pscid":71},{"icon":"http://120.27.23.105/images/icon.png","name":"移动电源","pcid":12,"pscid":72},{"icon":"http://120.27.23.105/images/icon.png","name":"苹果周边","pcid":12,"pscid":73},{"icon":"http://120.27.23.105/images/icon.png","name":"手机耳机","pcid":12,"pscid":74},{"icon":"http://120.27.23.105/images/icon.png","name":"充电器","pcid":12,"pscid":75},{"icon":"http://120.27.23.105/images/icon.png","name":"数据线","pcid":12,"pscid":76},{"icon":"http://120.27.23.105/images/icon.png","name":"手机电池","pcid":12,"pscid":77},{"icon":"http://120.27.23.105/images/icon.png","name":"保护套","pcid":12,"pscid":78}],"name":"手机配件","pcid":"12"},{"cid":"3","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"单反相机","pcid":13,"pscid":79},{"icon":"http://120.27.23.105/images/icon.png","name":"单电/微单相机","pcid":13,"pscid":80},{"icon":"http://120.27.23.105/images/icon.png","name":"拍立得","pcid":13,"pscid":81},{"icon":"http://120.27.23.105/images/icon.png","name":"数码相机","pcid":13,"pscid":82},{"icon":"http://120.27.23.105/images/icon.png","name":"摄像机","pcid":13,"pscid":83},{"icon":"http://120.27.23.105/images/icon.png","name":"镜头","pcid":13,"pscid":84}],"name":"摄影摄像","pcid":"13"}] */ private String msg; private String code; private List<DataBean> 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 List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * cid : 3 * list : [{"icon":"http://120.27.23.105/images/icon.png","name":"耳机/耳麦","pcid":10,"pscid":61},{"icon":"http://120.27.23.105/images/icon.png","name":"音箱/音响","pcid":10,"pscid":62},{"icon":"http://120.27.23.105/images/icon.png","name":"MP3/MP4","pcid":10,"pscid":63},{"icon":"http://120.27.23.105/images/icon.png","name":"便携/无线音箱","pcid":10,"pscid":64},{"icon":"http://120.27.23.105/images/icon.png","name":"麦克风","pcid":10,"pscid":65}] * name : 影音娱乐 * pcid : 10 */ private String cid; private String name; private String pcid; private List<ListBean> list; public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPcid() { return pcid; } public void setPcid(String pcid) { this.pcid = pcid; } public List<ListBean> getList() { return list; } public void setList(List<ListBean> list) { this.list = list; } public static class ListBean { /** * icon : http://120.27.23.105/images/icon.png * name : 耳机/耳麦 * pcid : 10 * pscid : 61 */ private String icon; private String name; private int pcid; private int pscid; public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPcid() { return pcid; } public void setPcid(int pcid) { this.pcid = pcid; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } } } }Xqpublic class Xq { /** * msg : 请求成功 * code : 0 * data : [{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":1,"price":118,"pscid":1,"salenum":0,"sellerid":17,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":2,"price":299,"pscid":1,"salenum":999,"sellerid":18,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":3,"price":198,"pscid":1,"salenum":1234,"sellerid":19,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":4,"price":999,"pscid":1,"salenum":356,"sellerid":20,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":5,"price":88.99,"pscid":1,"salenum":678,"sellerid":21,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":6,"price":7.99,"pscid":1,"salenum":234,"sellerid":22,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":7,"price":120.01,"pscid":1,"salenum":1266,"sellerid":23,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":8,"price":324,"pscid":1,"salenum":3000,"sellerid":1,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":9,"price":78.99,"pscid":1,"salenum":2356,"sellerid":2,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":10,"price":555.55,"pscid":1,"salenum":0,"sellerid":3,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}] * page : 1 */ private String msg; private String code; private String page; private List<DataBean> 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 String getPage() { return page; } public void setPage(String page) { this.page = page; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * bargainPrice : 111.99 * createtime : 2017-10-14T21:39:05 * detailUrl : https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends * images : https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg * itemtype : 1 * pid : 1 * price : 118.0 * pscid : 1 * salenum : 0 * sellerid : 17 * subhead : 每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下 * title : 北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g */ private double bargainPrice; private String createtime; private String detailUrl; private String images; private int itemtype; private int pid; private double price; private int pscid; private int salenum; private int sellerid; private String subhead; private String title; public double getBargainPrice() { return bargainPrice; } public void setBargainPrice(double 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 getItemtype() { return itemtype; } public void setItemtype(int itemtype) { this.itemtype = itemtype; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } public int getSalenum() { return salenum; } public void setSalenum(int salenum) { this.salenum = salenum; } 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; } } }商品详情view包Main2Activitypublic class Main2Activity extends AppCompatActivity implements IMain2Activity { private ImageView mImgaView; /** * hhh */ private TextView mTextView; /** * 加入购物车 */ private Button mButton; private List<Xq.DataBean> datas; private Banner mBanners; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initView(); initChen(); } private void initChen() { Presenter2 presenter2 = new Presenter2(this); presenter2.getData(); } private void initView() { //mImgaView = (ImageView) findViewById(R.id.imga_view); mTextView = (TextView) findViewById(R.id.text_view); mButton = (Button) findViewById(R.id.button); mBanners = (Banner) findViewById(R.id.banners); list= new ArrayList<>(); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Intent intent = new Intent(Main2Activity.this,Main3Activity.class); // startActivity(intent); Toast.makeText(Main2Activity.this, "成功加入购物车", Toast.LENGTH_SHORT).show(); } }); } @Override public void OnSuccess(List<Xq.DataBean> datas) { this.datas = datas; //创建适配器 mTextView.setText(datas.get(0).getTitle()); Log.e("UUUUU", "hhhhh" + datas.size()); String images = datas.get(0).getImages(); String[] urls = images.split("\\|"); for (int i = 0;i<urls.length;i++){ list.add(urls[i]); } mBanners.setImages(list); mBanners.setDelayTime(2000); mBanners.setImageLoader(new ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } }); mBanners.setIndicatorGravity(BannerConfig.CENTER); mBanners.start(); } @Override public void OnFailde(String s) { } }IMain2Activitypublic interface IMain2Activity { void OnSuccess( List<Xq.DataBean> datas); void OnFailde(String s); }Presenter2类public class Presenter2 implements IPresenter2{ IMain2Activity iMain2Activity; Model2 model2; public Presenter2(IMain2Activity iMain2Activity) { this.iMain2Activity = iMain2Activity; this.model2=new Model2(); } @Override public void OnSuccess( List<Xq.DataBean> datas) { if (iMain2Activity!=null){ iMain2Activity.OnSuccess(datas); } } @Override public void OnFailde(String s) { if (iMain2Activity!=null){ iMain2Activity.OnFailde(s.toString()); } } @Override public void getData() { model2.getData(this); } @Override public void youhua() { } }IPresenter2接口public interface IPresenter2 { void OnSuccess( List<Xq.DataBean> datas); void OnFailde(String s); void getData(); void youhua(); }model包ublic class Model2 implements IModel2{ private Handler handler=new Handler(); private String url="https://www.zhaoapi.cn/product/getProducts?pscid=1"; @Override public void getData(final IPresenter2 iPresenter2) { OkHttpClient client = new OkHttpClient(); Request request=new Request.Builder() .get() .url(url) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { if (iPresenter2!=null){ iPresenter2.OnFailde(e.getMessage()); } } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()){ final String res = response.body().string(); handler.post(new Runnable() { @Override public void run() { Gson gson = new Gson(); Xq xq = gson.fromJson(res, Xq.class); List<Xq.DataBean> datas = xq.getData(); iPresenter2.OnSuccess(datas); } }); } } }); } }IModel2接口public interface IModel2 { void getData(IPresenter2 iPresenter2); }