mvcmvp

xiaoxiao2021-02-28  55

mvc   model  view controller

自己做了一个demo   recyclerview的条目展示   

定义了一个Newsmoudle接口

public void geturl(String url, OnNewsListner onNewsListner);

定义了一个方法 传递url 和 一个接口

OnNewsListner public void Onsuceess(Mynews mm); public void Onerror(String error); 定义一个实现类 public class Newsmoudleimp implements Newsmoulde { @Override public void geturl(String url, final OnNewsListner onNewsListner) { OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { onNewsListner.Onerror(e.toString()); } @Override public void onResponse(String response, int id) { Gson gson=new Gson(); Mynews mynews = gson.fromJson(response, Mynews.class); Log.e("ss",mynews.toString()); onNewsListner.Onsuceess(mynews); } }); 会重写Newsmoudle里面的方法 onNewsListner 通过这个对象去调用回调接口里面的两个方法 将结果传递进去 public class MainActivity extends AppCompatActivity implements OnNewsListnerNewsmoulde newsmoulde=new Newsmoudleimp(); newsmoulde.geturl(MyUtilurl.url,this); }以上就是mvc的设计模式做一个简单的网络请求展示数据mvp activity相当于vm层做逻辑public interface Newsmoudle { public void getutl(String url, Newsview newsview); } public class Newsmoudleimp implements Newsmoudle { @Override public void getutl(String url, final Newsview newsview) { OkHttpUtils.get().url(Myurl.str).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { newsview.onError("请求失败"); } @Override public void onResponse(String response, int id) { Gson gson=new Gson(); Mynews mynews = gson.fromJson(response, Mynews.class); newsview.onSuccess(mynews); } }); }public interface Newsview { public void onSuccess(Mynews mynews); public void onError(String str); } //p层要拿到m层和v层的对象 //通过一个方法将数据传递给view层public class Newspresenter {  private Newsview newsview; Newsmoudle newsmoudle=new Newsmoudleimp(); private Context context; public Newspresenter(Newsview newsview, Context context) { this.newsview = newsview; this.context = context; } public void getdata(){ newsmoudle.getutl(Myurl.str, new Newsview() { @Override public void onSuccess(Mynews mynews) { newsview.onSuccess(mynews); } @Override public void onError(String str) { newsview.onError(str); } }); }

转载请注明原文地址: https://www.6miu.com/read-81357.html

最新回复(0)