首先将mvp使用的接口全部定义
loadcontract
public abstract class LoadPresenterIn{
public abstract void LeftPresenter(HashMap<String,String> map);
public abstract void RightPresenter(HashMap<String,String> map);
public abstract void PubuPresenter(HashMap<String,String> map);
}
interface LoadModelIn{
void LeftModel(HashMap<String,String> map, RequestCallBack callBack);
void RightModel(HashMap<String,String> map, RequestCallBack callBack);
void PubuModel(HashMap<String,String> map, RequestCallBack callBack);
}
interface LoadViewIn{
void LeftOnSuccess(String result);
void LeftOnFailUre(String msg);
void RightOnSuccess(String result);
void RightOnFailUre(String msg);
void PubuOnSuccess(String result);
void PubuFailUer(String msg);
}
这里是M层
开启单例模式
get post请求
public class LoadModel implements LoadContract.LoadModelIn {
private Handler handler = new Handler();
private String key;
private String value;
@Override
public void LeftModel(HashMap<String, String> map, final RequestCallBack callBack) {
OkHttputil.getInstance().doGet(UtilApi.LEFT_API, new OkHttpCallBack() {
@Override
public void Success(final String result) {
if (callBack!=null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Success(result);
}
});
}
}
@Override
public void Failure(String msg) {
if (callBack!=null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Failure("网络请求失败");
}
});
}
}
});
}
@Override
public void RightModel(HashMap<String, String> map, final RequestCallBack callBack) {
for (Map.Entry<String,String> map1:map.entrySet()){
key=map1.getKey();
value=map1.getValue();
}
String s = UtilApi.RIGHT_API+value;
OkHttputil.getInstance().doGet(s, new OkHttpCallBack() {
@Override
public void Success(final String result) {
if (callBack!=null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Success(result);
}
});
}
}
@Override
public void Failure(final String msg) {
if (callBack!=null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Failure(msg);
}
});
}
}
});
}
@Override
public void PubuModel(HashMap<String, String> map, final RequestCallBack callBack) {
OkHttputil.getInstance().doGet(UtilApi.PUBU_API, new OkHttpCallBack() {
@Override
public void Success(final String result) {
if (callBack!= null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Success(result);
}
});
}
}
@Override
public void Failure(final String msg) {
if (callBack!= null){
handler.post(new Runnable() {
@Override
public void run() {
callBack.Failure(msg);
}
});
}
}
});
}
}
这里是P层
public class LoadPresenter extends LoadContract.LoadPresenterIn {
private LoadContract.LoadViewIn loadViewIn;
private final LoadModel loadModel;
public LoadPresenter(LoadContract.LoadViewIn loadViewIn) {
this.loadViewIn = loadViewIn;
loadModel = new LoadModel();
}
@Override
public void LeftPresenter(final HashMap<String, String> map) {
loadModel.LeftModel(map, new RequestCallBack() {
@Override
public void Success(String result) {
if (loadViewIn!=null){
loadViewIn.LeftOnSuccess(result);
}
}
@Override
public void Failure(String msg) {
if (loadViewIn!=null){
loadViewIn.LeftOnFailUre(msg);
}
}
});
}
@Override
public void RightPresenter(HashMap<String, String> map) {
loadModel.RightModel(map, new RequestCallBack() {
@Override
public void Success(String result) {
if (loadViewIn!=null){
loadViewIn.RightOnSuccess(result);
}
}
@Override
public void Failure(String msg) {
if (loadViewIn!=null){
loadViewIn.RightOnFailUre(msg);
}
}
});
}
@Override
public void PubuPresenter(HashMap<String, String> map) {
loadModel.PubuModel(map, new RequestCallBack() {
@Override
public void Success(String result) {
if (loadViewIn!=null){
loadViewIn.PubuOnSuccess(result);
}
}
@Override
public void Failure(String msg) {
if (loadViewIn!=null){
loadViewIn.PubuFailUer(msg);
}
}
});
}
}
这是v层
loadPresenter = new LoadPresenter(this);
l_rv.setLayoutManager(new LinearLayoutManager(getActivity()));
leftAdapter = new LeftAdapter(getActivity());
loadPresenter.LeftPresenter(new HashMap<String, String>());
r_rv.setLayoutManager(new GridLayoutManager(getActivity(),2));
rightAdapter = new RightAdapter(getActivity());
HashMap<String, String> map = new HashMap<>();
map.put("keyword", "女鞋");
loadPresenter.RightPresenter(map);
r_rv.setAdapter(rightAdapter);