Constans
/**
* Created by lenovo on 2018/3/2.
*/
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";
}
utils包
Comm
.package com.example.lenovo.myapplication_classify.view.utils;
import java.io.IOException;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* Created by lenovo on 2018/3/2.
*/
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
package com.example.lenovo.myapplication_classify.view.utils;
import android.os.Handler;
import android.util.Log;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by lenovo on 2018/3/2.
*/
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
package com.example.lenovo.myapplication_classify.view.utils;/**
* Created by lenovo on 2018/1/17.
*/
public interface OnFinishListener {
void onFailed(String str);
void onSuccess(Object obj);
}
myapp包 ImageLoader
MyApp
package com.example.lenovo.myapplication_classify.view.myapp;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
/**
* Created by lenovo on 2018/3/2.
*/
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration loaderConfiguration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(loaderConfiguration);
}
}
bean包
LeftSuperClass
package com.example.lenovo.myapplication_classify.view.bean;import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
public 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;
}
}
}
RightSuperClass
package com.example.lenovo.myapplication_classify.view.bean;import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
public 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;
}
}
}
}
adapter包
LeftAdapter
package com.example.lenovo.myapplication_classify.view.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.lenovo.myapplication_classify.R;
import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
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);
}
}
MyAdapter
package com.example.lenovo.myapplication_classify.view.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.lenovo.myapplication_classify.R;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
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();
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
ViewHolder holder = new ViewHolder(view);
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);
}
@Override
public int getItemCount() {
return list != null ? list.size() : 0;
}
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);
}
}
}
RightAdapter
package com.example.lenovo.myapplication_classify.view.adapter;
import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
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.TextView;
import com.example.lenovo.myapplication_classify.R;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
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);
}
@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);
}
}
}
activity包
IMainActivity
package com.example.lenovo.myapplication_classify.view.activity;
import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import java.util.List;
/**
* Created by lenovo on 2018/3/2.
*/
public interface IMainActivity {
void onFailed(String str);
void onLeftSuccess(List<LeftSuperClass.DataBean> list);
void onRightSuccess(List<RightSuperClass.DataBean> list);
}
MainActivity
package com.example.lenovo.myapplication_classify.view.activity;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.example.lenovo.myapplication_classify.Constans;
import com.example.lenovo.myapplication_classify.R;
import com.example.lenovo.myapplication_classify.presenter.ITotalPresenter;
import com.example.lenovo.myapplication_classify.presenter.TotalPresenter;
import com.example.lenovo.myapplication_classify.view.adapter.LeftAdapter;
import com.example.lenovo.myapplication_classify.view.adapter.RightAdapter;
import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements IMainActivity {
private ITotalPresenter iTotalPresenter;
private RecyclerView leftRecycle;
private RecyclerView rightRecycle;
private Map<String, String> leftMap;
private Map<String, String> rightMap;
private LeftAdapter leftAdapter;
private List<LeftSuperClass.DataBean> data;
private RightAdapter rightAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
initView();
iTotalPresenter.left(Constans.LEFT_URL, leftMap);
leftRecycle.setLayoutManager(new LinearLayoutManager(this));
leftRecycle.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
leftRecycle.setAdapter(leftAdapter);
leftAdapter.setOnItemClickListner(new LeftAdapter.OnItemClickListner() {
@Override
public void onItemClick(View view, int cid) {
// rightMap.clear();
rightMap.put("cid",cid + "");
iTotalPresenter.right(Constans.RIGHT_URL,rightMap);
}
});
rightRecycle.setLayoutManager(new LinearLayoutManager(this));
rightRecycle.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
rightRecycle.setAdapter(rightAdapter);
}
@Override
public void onFailed(String str) {
Toast.makeText(this, str, Toast.LENGTH_LONG).show();
}
@Override
public void onLeftSuccess(List<LeftSuperClass.DataBean> list) {
// Toast.makeText(this, "--" + list.size(), Toast.LENGTH_LONG).show();
this.data = list;
leftAdapter.setList(data);
//右侧默认展示数据
rightMap.put("cid",data.get(0).getCid() + "");
iTotalPresenter.right(Constans.RIGHT_URL,rightMap);
}
@Override
public void onRightSuccess(List<RightSuperClass.DataBean> list) {
// Toast.makeText(this, "--" + list.size(), Toast.LENGTH_LONG).show();
rightAdapter.setList(list);
}
@Override
protected void onDestroy() {
super.onDestroy();
iTotalPresenter.onDestory();
}
private void initView() {
leftRecycle = (RecyclerView) findViewById(R.id.left_recycle);
rightRecycle = (RecyclerView) findViewById(R.id.right_recycle);
iTotalPresenter = new TotalPresenter(this);
leftAdapter = new LeftAdapter(this);
rightAdapter = new RightAdapter(this);
leftMap = new HashMap<>();
rightMap = new HashMap<>();
}
}
presenter包
ITotalPresenter
package com.example.lenovo.myapplication_classify.presenter;import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import java.util.List;
import java.util.Map;
/**
* Created by lenovo on 2018/3/2.
*/
public interface ITotalPresenter {
void left(String path, Map<String,String> map);
void right(String path, Map<String,String> map);
void onFailed(String str);
void onLeftSuccess(List<LeftSuperClass.DataBean> list);
void onRightSuccess(List<RightSuperClass.DataBean> list);
void onDestory();
}
TotalPresenter
package com.example.lenovo.myapplication_classify.presenter;import com.example.lenovo.myapplication_classify.modle.ITotalModle;
import com.example.lenovo.myapplication_classify.modle.TotalModle;
import com.example.lenovo.myapplication_classify.view.activity.IMainActivity;
import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import java.util.List;
import java.util.Map;
/**
* Created by lenovo on 2018/3/2.
*/
public class TotalPresenter implements ITotalPresenter {
private IMainActivity iMainActivity;
private ITotalModle iTotalModle;
public TotalPresenter(IMainActivity iMainActivity) {
this.iMainActivity = iMainActivity;
iTotalModle = new TotalModle();
}
@Override
public void left(String path, Map<String, String> map) {
iTotalModle.left(path,map,this);
}
@Override
public void right(String path, Map<String, String> map) {
iTotalModle.right(path,map,this);
}
@Override
public void onFailed(String str) {
if (iMainActivity != null){
iMainActivity.onFailed(str);
}
}
@Override
public void onLeftSuccess(List<LeftSuperClass.DataBean> list) {
if (iMainActivity != null){
iMainActivity.onLeftSuccess(list);
}
}
@Override
public void onRightSuccess(List<RightSuperClass.DataBean> list) {
if (iMainActivity != null){
iMainActivity.onRightSuccess(list);
}
}
@Override
public void onDestory() {
if (iMainActivity != null){
iMainActivity = null;
}
}
}
modle包
ITotalModle
package com.example.lenovo.myapplication_classify.modle;
import com.example.lenovo.myapplication_classify.presenter.ITotalPresenter;
import java.util.Map;
/**
* Created by lenovo on 2018/3/2.
*/
public interface ITotalModle {
void left(String path, Map<String,String> map , ITotalPresenter iTotalPresenter);
void right(String path, Map<String,String> map , ITotalPresenter iTotalPresenter);
}
TotalModle
package com.example.lenovo.myapplication_classify.modle;import com.example.lenovo.myapplication_classify.presenter.ITotalPresenter;
import com.example.lenovo.myapplication_classify.view.bean.LeftSuperClass;
import com.example.lenovo.myapplication_classify.view.bean.RightSuperClass;
import com.example.lenovo.myapplication_classify.view.utils.OkHttpUtils;
import com.example.lenovo.myapplication_classify.view.utils.OnFinishListener;
import com.google.gson.Gson;
import java.util.List;
import java.util.Map;
/**
* Created by lenovo on 2018/3/2.
*/
public class TotalModle implements ITotalModle {
private OkHttpUtils okHttpUtils;
@Override
public void left(String path, Map<String, String> map, final ITotalPresenter 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 ITotalPresenter 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());
}
});
}
}