导入依赖
compile ‘com.google.code.gson:gson:2.6.2’
compile ‘com.squareup.okhttp3:okhttp:3.3.0’
compile ‘com.github.bumptech.glide:glide:3.7.0’
compile ‘com.android.support:recyclerview-v7:27.1.1’
权限
<uses-permission android:name="android.permission.INTERNET"/>
布局文件
activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cuishihao.bwie.com.luan.view.MainActivity"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="分类"
android:textSize="25dp"
android:gravity="center"
android:id="@+id/but_tv"/>
<View
android:layout_width="match_parent"
android:layout_height="0.75dp"
android:background="#999999"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<ListView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:id="@+id/left_list"></ListView>
<ListView
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="match_parent"
android:id="@+id/right_list"></ListView>
</LinearLayout>
</LinearLayout>
layout_left
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/left_tv"
android:textSize="20dp"
android:layout_gravity="center"/>
</LinearLayout>
layout_right
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/right_tv"
android:text="商品1"/>
<cuishihao.bwie.com.luan.view.MyGridView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/right_gv"
android:numColumns="3"></cuishihao.bwie.com.luan.view.MyGridView>
</LinearLayout>
layout_zi
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/zi_pic"
android:src="@mipmap/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/zi_tv"
android:text="商品"/>
</LinearLayout>
bean包
FenlBean
import java.util.List;
/**
* Created by wonder on 2018/5/4.
*/
public class FenlBean {
/**
* 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;
}
}
}
ZiBean
import java.util.List;
/**
* Created by wonder on 2018/5/4.
*/
public class ZiBean {
/**
* msg : 获取子分类成功
* code : 0
* data : [{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}],"name":"休闲零食","pcid":"1"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜水果","pcid":2,"pscid":9},{"icon":"http://120.27.23.105/images/icon.png","name":"海鲜水产","pcid":2,"pscid":10},{"icon":"http://120.27.23.105/images/icon.png","name":"精选肉类","pcid":2,"pscid":11},{"icon":"http://120.27.23.105/images/icon.png","name":"蛋类","pcid":2,"pscid":12},{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜蔬菜","pcid":2,"pscid":13},{"icon":"http://120.27.23.105/images/icon.png","name":"冷冻食品","pcid":2,"pscid":14},{"icon":"http://120.27.23.105/images/icon.png","name":"饮品甜品","pcid":2,"pscid":15},{"icon":"http://120.27.23.105/images/icon.png","name":"大闸蟹","pcid":2,"pscid":16}],"name":"京东生鲜","pcid":"2"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"大米","pcid":3,"pscid":21},{"icon":"http://120.27.23.105/images/icon.png","name":"面粉","pcid":3,"pscid":22},{"icon":"http://120.27.23.105/images/icon.png","name":"杂粮","pcid":3,"pscid":23},{"icon":"http://120.27.23.105/images/icon.png","name":"食用油","pcid":3,"pscid":24},{"icon":"http://120.27.23.105/images/icon.png","name":"调味品","pcid":3,"pscid":25},{"icon":"http://120.27.23.105/images/icon.png","name":"方便速食","pcid":3,"pscid":26},{"icon":"http://120.27.23.105/images/icon.png","name":"有机食品","pcid":3,"pscid":27}],"name":"粮油调味","pcid":"3"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"饮用水","pcid":4,"pscid":28},{"icon":"http://120.27.23.105/images/icon.png","name":"饮料","pcid":4,"pscid":29},{"icon":"http://120.27.23.105/images/icon.png","name":"牛奶乳品","pcid":4,"pscid":30},{"icon":"http://120.27.23.105/images/icon.png","name":"名茶","pcid":4,"pscid":31},{"icon":"http://120.27.23.105/images/icon.png","name":"蜂蜜","pcid":4,"pscid":32}],"name":"水饮茗茶","pcid":"4"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"白酒","pcid":5,"pscid":33},{"icon":"http://120.27.23.105/images/icon.png","name":"葡萄酒","pcid":5,"pscid":34},{"icon":"http://120.27.23.105/images/icon.png","name":"洋酒","pcid":5,"pscid":35},{"icon":"http://120.27.23.105/images/icon.png","name":"啤酒","pcid":5,"pscid":36},{"icon":"http://120.27.23.105/images/icon.png","name":"黄酒","pcid":5,"pscid":37},{"icon":"http://120.27.23.105/images/icon.png","name":"陈年老酒","pcid":5,"pscid":38}],"name":"中外名酒","pcid":"5"}]
*/
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
* list : [{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}]
* name : 休闲零食
* pcid : 1
*/
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 : 1
* pscid : 1
*/
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;
}
}
}
}
http
Httpconfig
public class Httpconfig {
public static String fenL_base = "https://www.zhaoapi.cn/product/getCatagory";
public static String zi_base = "https://www.zhaoapi.cn/product/getProductCatagory";}
HttpUtils
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* Created by wonder on 2018/5/4.
*/
public class HttpUtils {
private static final String TAG = "HttpUtils-----";
private static HttpUtils httpUtils;
private final int SUCCESS = 0;
private final int ERROR = 1;
private MyHandler myHandler = new MyHandler();
private OkLoadListener okLoadListener;
public static HttpUtils getHttpUtils() {
if (httpUtils == null) {
httpUtils = new HttpUtils();
}
return httpUtils;
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SUCCESS:
//成功
String json = (String) msg.obj;
okLoadListener.okLoadSuccess(json);
break;
case ERROR:
//失败
String error = (String) msg.obj;
okLoadListener.okLoadError(error);
break;
}
}
}
//get
public void okGet(String url) {
OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new MyIntercepter()).build();
Request request = new Request.Builder().url(url).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Message message = myHandler.obtainMessage();
message.what = ERROR;
message.obj = e.getMessage();
myHandler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Message message = myHandler.obtainMessage();
message.what = SUCCESS;
message.obj = response.body().string();
myHandler.sendMessage(message);
}
});
}
public void setOkLoadListener(OkLoadListener okLoadListener) {
this.okLoadListener = okLoadListener;
}
//post
public void okPost(String url, Map<String, String> params) {
OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new MyIntercepter()).build();
FormBody.Builder builder = new FormBody.Builder();
Set<String> keySet = params.keySet();
for (String key :
keySet) {
String value = params.get(key);
builder.add(key, value);
}
FormBody formBody = builder.build();
Request request = new Request.Builder().url(url).post(formBody).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Message message = myHandler.obtainMessage();
message.what = ERROR;
message.obj = e.getMessage();
myHandler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Message message = myHandler.obtainMessage();
message.what = SUCCESS;
message.obj = response.body().string();
myHandler.sendMessage(message);
}
});
}
//拦截器
class MyIntercepter implements Interceptor {
//intercept 拦截
@Override
public Response intercept(Chain chain) throws IOException {
//添加公共参数
// post 取出原来所有的参数,将之加到新的请求体里面。然后让请求去执行
Request request = chain.request();
//获取请求方法
String method = request.method();
if (method.equals("GET")) {//---------------------------GET 拦截
//取出url地址
String url = request.url().toString();
//拼接公共参数
boolean contains = url.contains("?");
if (contains) {
url = url + "&source=android";
} else {
url = url + "?source=android";
}
Request request1 = request.newBuilder().url(url).build();
Response response = chain.proceed(request1);
return response;
} else if (method.equals("POST")) {//---------------------POST 拦截
RequestBody body = request.body();//请求体
if (body instanceof FormBody) {
//创建新的请求体
FormBody.Builder newBuilder = new FormBody.Builder();
for (int i = 0; i < ((FormBody) body).size(); i++) {
String key = ((FormBody) body).name(i);
String value = ((FormBody) body).value(i);
newBuilder.add(key, value);
}
//添加公共参数
newBuilder.add("source", "android");
FormBody newBody = newBuilder.build();
//创建新的请求体
Request request1 = request.newBuilder().post(newBody).build();
//去请求
Response response = chain.proceed(request1);
return response;
}
}
return null;
}
}
//上传文件(图片)
public void upLoadImage(String url, String path) {//url 要上传的地址。path 要上传的文件路径
//媒体类型
MediaType mediaType = MediaType.parse("image/*");
//multipartbody
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
File file = new File(path);
MultipartBody multipartBody = builder.addFormDataPart("file", file.getName(), RequestBody.create(mediaType, file)).build();
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url(url).post(multipartBody).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d(TAG, "上传失败0----: ");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d(TAG, "上传成功: ");
}
});
}
}
OkLoadListener
public interface OkLoadListener {
void okLoadSuccess(String json);
void okLoadError(String error);
}
mdel层
FenlListener
public interface FenlListener {
void FenlSuccess(String json);
void FenlError(String error);
}
IModel
import java.util.List;
import java.util.Map;
/**
* Created by wonder on 2018/5/4.
*/
public interface IModel {
void getFenlList(String url, Map<String, String> parms, FenlListener fenlListener);
void getRightList(String url, Map<String, String> parms, FenlListener fenlListener);
void getGoodsList(String url, Map<String, String> parms, FenlListener fenlListener);
void getGoodsXiang(String url, Map<String, String> parms, FenlListener fenlListener);
void getGoodsGouWu(String url, Map<String, String> parms, FenlListener fenlListener);
}
IModelImpl
import java.util.List;
import java.util.Map;
import cuishihao.bwie.com.luan.http.HttpUtils;
import cuishihao.bwie.com.luan.http.OkLoadListener;
/**
* Created by wonder on 2018/5/4.
*/
public class IModelImpl implements IModel {
@Override
public void getFenlList(String url, Map<String, String> parms, final FenlListener fenlListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url,parms);
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
fenlListener.FenlSuccess(json);
}
@Override
public void okLoadError(String error) {
fenlListener.FenlError(error);
}
});
}
@Override
public void getRightList(String url, Map<String, String> parms, final FenlListener fenlListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url,parms);
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
fenlListener.FenlSuccess(json);
}
@Override
public void okLoadError(String error) {
fenlListener.FenlError(error);
}
});
}
@Override
public void getGoodsList(String url, Map<String, String> parms, final FenlListener fenlListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url,parms);
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
fenlListener.FenlSuccess(json);
}
@Override
public void okLoadError(String error) {
fenlListener.FenlError(error);
}
});
}
@Override
public void getGoodsXiang(String url, Map<String, String> parms, final FenlListener fenlListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url,parms);
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
fenlListener.FenlSuccess(json);
}
@Override
public void okLoadError(String error) {
fenlListener.FenlError(error);
}
});
}
@Override
public void getGoodsGouWu(String url, Map<String, String> parms, final FenlListener fenlListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url,parms);
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
fenlListener.FenlSuccess(json);
}
@Override
public void okLoadError(String error) {
fenlListener.FenlError(error);
}
});
}
}
presenter层
IPresenter
import cuishihao.bwie.com.luan.model.IModel;
import cuishihao.bwie.com.luan.view.IView;
/**
* Created by wonder on 2018/5/4.
*/
public interface IPresenter {
void showLeft(IModel iModel, IView iView);
void showRight(IModel iModel, IView iView);
}
IPresenterImpl
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cuishihao.bwie.com.luan.bean.FenlBean;
import cuishihao.bwie.com.luan.bean.ZiBean;
import cuishihao.bwie.com.luan.http.Httpconfig;
import cuishihao.bwie.com.luan.model.FenlListener;
import cuishihao.bwie.com.luan.model.IModel;
import cuishihao.bwie.com.luan.view.IView;
/**
* Created by wonder on 2018/5/4.
*/
public class IPresenterImpl implements IPresenter {
@Override
public void showLeft(IModel iModel, final IView iView) {
Map<String,String> map=new HashMap<>();
iModel.getFenlList(Httpconfig.fenL_base, map, new FenlListener() {
@Override
public void FenlSuccess(String json) {
Gson gson=new Gson();
FenlBean fenlBean = gson.fromJson(json, FenlBean.class);
List<FenlBean.DataBean> data = fenlBean.getData();
iView.showleftList(data);
}
@Override
public void FenlError(String error) {
}
});
}
@Override
public void showRight(IModel iModel, final IView iView) {
Map<String,String> map=new HashMap<>();
map.put("cid",iView.getid());
iModel.getRightList(Httpconfig.zi_base, map, new FenlListener() {
@Override
public void FenlSuccess(String json) {
Gson gson=new Gson();
ZiBean ziBean = gson.fromJson(json, ZiBean.class);
List<ZiBean.DataBean> data = ziBean.getData();
iView.showright(data);
}
@Override
public void FenlError(String error) {
}
});
}
}
view
IView
import java.util.List;
import cuishihao.bwie.com.luan.bean.FenlBean;
import cuishihao.bwie.com.luan.bean.ZiBean;
/**
* Created by wonder on 2018/5/4.
*/
public interface IView {
void showleftList(List<FenlBean.DataBean> list);
void showright(List<ZiBean.DataBean> data);
String getid();
}
MainActivity
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.List;
import cuishihao.bwie.com.luan.R;
import cuishihao.bwie.com.luan.adapter.Myadapter1;
import cuishihao.bwie.com.luan.adapter.Myadapter3;
import cuishihao.bwie.com.luan.bean.FenlBean;
import cuishihao.bwie.com.luan.bean.ZiBean;
import cuishihao.bwie.com.luan.model.IModelImpl;
import cuishihao.bwie.com.luan.presenter.IPresenterImpl;
public class MainActivity extends AppCompatActivity implements IView {
private ListView left_list;
private String cid;
private ListView right_list;
private List<FenlBean.DataBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
IPresenterImpl iPresenter = new IPresenterImpl();
iPresenter.showLeft(new IModelImpl(),this);
}
private void initview() {
TextView but_tv=findViewById(R.id.but_tv);
left_list = findViewById(R.id.left_list);
right_list = findViewById(R.id.right_list);
left_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
MainActivity.this.cid=list.get(i).getCid()+"";
IPresenterImpl iPresenter = new IPresenterImpl();
iPresenter.showRight(new IModelImpl(),MainActivity.this);
}
});
}
@Override
public void showleftList(List<FenlBean.DataBean> list) {
this.list=list;
Myadapter1 myadapter1 = new Myadapter1(this, list);
left_list.setAdapter(myadapter1);
MainActivity.this.cid=list.get(0).getCid()+"";
IPresenterImpl iPresenter = new IPresenterImpl();
iPresenter.showRight(new IModelImpl(),MainActivity.this);
}
@Override
public void showright(List<ZiBean.DataBean> data) {
Myadapter3 myadapter3 = new Myadapter3(this, data);
right_list.setAdapter(myadapter3);
}
@Override
public String getid() {
return this.cid;
}
}
MyGridView
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
/**
* Created by wonder on 2018/4/29.
*/
public class MyGridView extends GridView {
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int i = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, i);
}
}
底部没有导航栏,图标点击也没有,只是单纯的这一个展示请求数据的页面,点击左边右边会出现不同的商品