MVP契约类

//Api
package mmy.example.com.zklx3_2.api;

public class Api {

public static String Left = "http://172.17.8.100/small/commodity/v1/findFirstCategory";
public static String right= "http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?page=1&count=10&keyword=";

}

//RightBean

package mmy.example.com.zklx3_2.bean;

import java.util.List;

public class RightBean {

private String message;
private String status;
private List<ResultBean> 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 List<ResultBean> getResult() {
    return result;
}

public void setResult(List<ResultBean> result) {
    this.result = result;
}

public static class ResultBean {


    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;
    }
}

}

//

package mmy.example.com.zklx3_2.bean;

import java.util.List;

public class UserBean {

private String message;
private String status;
private List<ResultBean> 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 List<ResultBean> getResult() {
    return result;
}

public void setResult(List<ResultBean> result) {
    this.result = result;
}

public static class ResultBean {


    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

}

//IClaContance
package mmy.example.com.zklx3_2.contance;

import java.util.HashMap;

import mmy.example.com.zklx3_2.model.ClaModel;

public interface IClaContance {

abstract class IClaPresenter{
    public abstract void clalist(HashMap<String,String> params);
    public abstract void claRightlist(HashMap<String,String>params);
}

interface IClaModel{
    void clalist(HashMap<String,String>params, ClaModel.IClaModelCallBack callBack);
    void claRightlist(HashMap<String,String>params, ClaModel.IClaModelCallBack callBack);
}
interface IClaView{
    void success(String result);
    void error(String msg);
    void Rightsuccess(String result);
    void Righterror(String msg);
}

}

//ShouyeActivity

package mmy.example.com.zklx3_2.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.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.google.gson.Gson;

import java.util.HashMap;

import mmy.example.com.zklx3_2.R;
import mmy.example.com.zklx3_2.adpter.MyAdapter;
import mmy.example.com.zklx3_2.adpter.RightAdapter;
import mmy.example.com.zklx3_2.bean.RightBean;
import mmy.example.com.zklx3_2.bean.UserBean;
import mmy.example.com.zklx3_2.contance.IClaContance;
import mmy.example.com.zklx3_2.presenter.ClaPresenter;
import mmy.example.com.zklx3_2.views.Views;

public class ShouyeActivity extends Fragment implements IClaContance.IClaView,MyAdapter.onclicklisener {

private RecyclerView mRightRv;
private RecyclerView mLeftRv;
private Button sao;
private Views ss;
private MyAdapter myAdapter;
private RightAdapter rightAdapter;
private ClaPresenter claPresenter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.shouye, container, false);

    sao = view.findViewById(R.id.sao);
    ss = view.findViewById(R.id.ss);

    mRightRv = view.findViewById(R.id.right_rv);
    mLeftRv = view.findViewById(R.id.left_rv);
    mLeftRv.setLayoutManager(new LinearLayoutManager(getActivity()));
    mRightRv.setLayoutManager(new GridLayoutManager(getActivity(),2));
    myAdapter = new MyAdapter(getActivity());
    rightAdapter = new RightAdapter(getActivity());

    claPresenter = new ClaPresenter(this);
    claPresenter.clalist(new HashMap<String, String>());
    HashMap<String, String> hashMap = new HashMap<>();
    hashMap.put("a","鞋");
    claPresenter.claRightlist(hashMap);
    ss.sou.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String s = ss.edit.getText().toString();
            HashMap<String, String> hashMap = new HashMap<>();
            hashMap.put("a",s);
            claPresenter.claRightlist(hashMap);
        }
    });
    return view;
}

@Override
public void click(String cid) {
    getLeft(cid);
}

@Override
public void success(String result) {
    UserBean userBean = new Gson().fromJson(result,UserBean.class);
    myAdapter.setList(userBean.getResult());
    myAdapter.setOnclicklisener(this);
    mLeftRv.setAdapter(myAdapter);
}

@Override
public void error(String msg) {

}

@Override
public void Rightsuccess(String result) {
    RightBean rightBean = new Gson().fromJson(result,RightBean.class);
    rightAdapter.setList(rightBean.getResult());
    mRightRv.setAdapter(rightAdapter);
}

@Override
public void Righterror(String msg) {

}

private void getLeft(String cid){
    HashMap<String,String>params=new HashMap<>();
    params.put("a",cid);
    claPresenter.claRightlist(params);
}

}

//ClaModel

package mmy.example.com.zklx3_2.model;

import java.util.HashMap;
import java.util.Map;

import mmy.example.com.zklx3_2.api.Api;
import mmy.example.com.zklx3_2.contance.IClaContance;
import mmy.example.com.zklx3_2.net.OkHttpCallBack;
import mmy.example.com.zklx3_2.net.OkHttpUtils;

public class ClaModel implements IClaContance.IClaModel {

private String key;
private String value;

@Override
public void clalist(HashMap<String, String> params, final IClaModelCallBack callBack) {
    OkHttpUtils.getInstance().doGet(Api.Left, new OkHttpCallBack() {
        @Override
        public void success(String result) {
            callBack.success(result);
        }

        @Override
        public void error(String msg) {
            callBack.error(msg);
        }
    });
}

@Override
public void claRightlist(HashMap<String, String> params, final IClaModelCallBack callBack) {
    for (Map.Entry<String,String> map:params.entrySet()){
        key = map.getKey();
        value = map.getValue();
    }

    String s = Api.right + value;
    OkHttpUtils.getInstance().doGet(s, new OkHttpCallBack() {
        @Override
        public void success(String result) {
            callBack.success(result);
        }

        @Override
        public void error(String msg) {
            callBack.error(msg);
        }
    });
}

public interface IClaModelCallBack{
    void success(String result);
    void error(String msg);
}

}

//OkHttpCallBack
package mmy.example.com.zklx3_2.net;

public interface OkHttpCallBack {

void success(String result);
void error(String msg);

}

//OkHttpUtils

package mmy.example.com.zklx3_2.net;

import android.os.Handler;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;

public class OkHttpUtils {

private OkHttpClient okHttpClient;
private static OkHttpUtils mInatance;
private Handler handler= new Handler();

//单例模式
public static OkHttpUtils getInstance(){
    if (mInatance == null){
        synchronized (OkHttpUtils.class){
            if (mInatance == null){
                mInatance = new OkHttpUtils();
            }
        }
    }
    return mInatance;
}

//拦截器
private OkHttpUtils(){
    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
    loggingInterceptor.setLevel((HttpLoggingInterceptor.Level.BODY));
    okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(loggingInterceptor)
            .connectTimeout(5,TimeUnit.SECONDS)
            .readTimeout(5,TimeUnit.SECONDS)
            .writeTimeout(5,TimeUnit.SECONDS)
            .build();
}

//doget

public void doGet(String url,final OkHttpCallBack callBack){
    Request build = new Request.Builder().url(url).get().build();
    okHttpClient.newCall(build).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    callBack.error("网络异常");
                }
            });
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.code() == 200){
                final String string = response.body().string();
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callBack.success(string);
                    }
                });
            }
        }
    });
}

}

//ClaPresenter

package mmy.example.com.zklx3_2.presenter;

import java.util.HashMap;

import mmy.example.com.zklx3_2.contance.IClaContance;
import mmy.example.com.zklx3_2.model.ClaModel;

public class ClaPresenter extends IClaContance.IClaPresenter {

private IClaContance.IClaView iClaView;
private ClaModel claModel;

public ClaPresenter(IClaContance.IClaView iClaView) {
    this.iClaView = iClaView;
    claModel = new ClaModel();
}

@Override
public void clalist(HashMap<String, String> params) {
    claModel.clalist(params, new ClaModel.IClaModelCallBack() {
        @Override
        public void success(String result) {
            iClaView.success(result);
        }

        @Override
        public void error(String msg) {
            iClaView.error(msg);
        }
    });
}

@Override
public void claRightlist(HashMap<String, String> params) {
    claModel.claRightlist(params, new ClaModel.IClaModelCallBack() {
        @Override
        public void success(String result) {
            iClaView.Rightsuccess(result);
        }

        @Override
        public void error(String msg) {
            iClaView.Righterror(msg);
        }
    });
}

}

//Views

package mmy.example.com.zklx3_2.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

import mmy.example.com.zklx3_2.R;

public class Views extends LinearLayout {

public Button sao;
public EditText edit;
public Button sou;

public Views(Context context) {
    super(context);
}

public Views(Context context, AttributeSet attrs) {
    super(context, attrs);
    View view = LayoutInflater.from(context).inflate(R.layout.line,this);
    sao = view.findViewById(R.id.sao);
    edit = view.findViewById(R.id.edit);
    sou = view.findViewById(R.id.sou);

}

public Views(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

}

//MainActivity
package mmy.example.com.zklx3_2;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.hjm.bottomtabbar.BottomTabBar;

import mmy.example.com.zklx3_2.fragment.ShouyeActivity;
import mmy.example.com.zklx3_2.fragment.XiaoyeActivity;
import mmy.example.com.zklx3_2.fragment.XingActivity;

public class MainActivity extends AppCompatActivity {

private BottomTabBar bottomTabBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bottomTabBar = findViewById(R.id.bottomTabBar);

    bottomTabBar.init(getSupportFragmentManager())
            .setImgSize(50,60)
            .setFontSize(8)
            .setTabPadding(4,6,10)
            .setChangeColor(Color.RED,Color.BLUE)
            .addTabItem("首页",R.drawable.message_false,ShouyeActivity.class)
            .addTabItem("分类",R.drawable.start_false,XingActivity.class)
            .addTabItem("我的",R.drawable.see_false,XiaoyeActivity.class);



}

}

//main_activity

<?xml version="1.0" encoding="utf-8"?>

<com.hjm.bottomtabbar.BottomTabBar
    android:id="@+id/bottomTabBar"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</com.hjm.bottomtabbar.BottomTabBar>

//shou

<?xml version="1.0" encoding="utf-8"?>

<mmy.example.com.zklx3_2.views.Views
    android:id="@+id/ss"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></mmy.example.com.zklx3_2.views.Views>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <android.support.v7.widget.RecyclerView
        android:background="#ccc"
        android:id="@+id/left_rv"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/right_rv"
        android:layout_width="0dp"
        android:layout_weight="3"
        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
</LinearLayout>

//line

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/sao"
    android:text="扫一扫"
    android:layout_width="50dp"
    android:layout_weight="1"
    android:layout_height="wrap_content" />

<EditText
    android:id="@+id/edit"
    android:layout_weight="3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="请输入搜索内容"/>
<Button
    android:id="@+id/sou"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="搜索"/>

//left

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:lines="1"
    android:maxLength="4"
    android:textSize="24sp"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    />
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000"/>

//right

<?xml version="1.0" encoding="utf-8"?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值