model层的u体力是包里的Myutils

presenter层的Basepersenter和Mainpersenter

view层的activity包里的Mainactivity和iview包里的ImvpView和Mainview

utils类中

public class Utils {public static void httpGet(String url,UtilsInterface utilsInterface){//假象这里已经x.http.get网络请求操作了
        //数据回来
        //需要回掉给p层
        //通过接口回掉,所以这里需要建立一个借口,在本类直接建立即可,专属utils的
        utilsInterface.CallBack("哈哈,我是m层的数据");

    }public interface UtilsInterface{<T>void CallBack(T mclass);

    }}

Basepersenter类里

public class BasePersenter <T extends IMvpview> {private T imvpview;

    public T getImvpview() {return imvpview;
    }public void setImvpview(T imvpview) {this.imvpview = imvpview;
    }}

Mainpersenter类里

public class Mainpersenter extends BasePersenter<MainInterface> {public void getData() {//请求数据,数据正规来说从m层毁掉回来
         //在这里进行模拟

        Utils.httpGet("ss", new Utils.UtilsInterface() {@Override
            public <T> void CallBack(T mclass) {// mclass这个参数就是m层utils传过的
               //这个数据需要回掉给v层,所以需要获得v层的引用
                //直接调用父类的getImvpview()方法获得v层的引用

                getImvpview().CallBack((String) mclass);

            }});

    }}

Mainactivity中

public class MainActivity extends AppCompatActivity implements View.OnClickListener,MainInterface{private Button btn_;

    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }private void initView() {btn_ = (Button) findViewById(R.id.btn_);

        btn_.setOnClickListener(this);
    }@Override
    public void onClick(View v) {switch (v.getId()) {case R.id.btn_:Mainpersenter mainpersenter = new Mainpersenter();
                mainpersenter.setImvpview(this);
                mainpersenter.getData();

                break;
        }}@Override
    public void CallBack(String string) {Toast.makeText(this, "vvvv=="+string, Toast.LENGTH_SHORT).show();

    }}

ImvpView中

public interface IMvpview {}

MainInterface中

public interface MainInterface extends IMvpview {//MainActivity的专属接口,因为需要回掉吐司的数据 ,所以这个抽象方法的参数类型是string类型

    void CallBack(String string);

}

点击吐丝用mvp模式实现--狸菇凉_相关推荐

  1. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(3):构造具有个人特色的MVP模式

    1. MVP的问题 之前我们说过MVP模式最大的问题在于:每写一个Activity/Fragment需要写4个对应的文件,对于一个简易的app框架来说太麻烦了.所以我们需要对MVP进行一定的简化. 关 ...

  2. MVP模式在Android实际项目中的应用和优化

    注:本文阅读需要对MVP模式有基本了解. MVP模式已经出现有很长一段时间了,但是火起来是这两年的事情. 关于MVP的概览,介绍,乃至于教程,Demo,实例,网上都有很多,我也有一篇文章专门收录了一些 ...

  3. 应用MVP模式写出可维护的优美Android应用

    在Android开发中,我们常常会动辄写出数千行的Java类,而当一个Activity有4.5千行的时候,想找一个逻辑在哪儿就会显得异常痛苦了.比如想在数据加载错误的时候,显示一个提示信息,上上下下得 ...

  4. android 适合mvp模式,Android中的MVP:如何使Presenter层系统化?

    MVP(Model View Presenter)模式是著名的 MVC(Model View Controller)的衍生物,并且是 Android 应用程序中管理表示层的***的模式之一. 这篇文章 ...

  5. 谈谈关于MVP模式中V-P交互问题

    在差不多两年的时间内,我们项目组几十来号人都扑在一个项目上面.这是一个基于微软SCSF(Smart Client Software Factory)的项目,客户端是墨尔本一家事业单位.前两周,我奉命负 ...

  6. Android之MVP 模式:简单易懂的介绍方式

    转载:https://segmentfault.com/a/1190000003927200 Android MVP Pattern Android MVP 模式1 也不是什么新鲜的东西了,我在自己的 ...

  7. android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用

    一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Mode ...

  8. java mvp模式_MVP模式入门(结合Rxjava,Retrofit)

    本文MVP的sample实现效果: 老规矩,在说对MVP模式的理解之前还是要再谈谈MVC模式,了解了MVC的缺点.我们才知道为什么要用MVP. 关于MVC的图解,我在网上找到了一些图.如下: MVC模 ...

  9. iOS开发笔记--基于面向协议MVP模式下的软件设计

    传统模式下的开发 MVC MVVM 基于面向协议MVP的介绍 MVP实战开发 说在前面:  相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板.随着时间的推移,在iOS ...

  10. MVP模式在携程酒店的应用和扩展

    前言 酒店业务部门是携程旅行的几大业务之一,其业务逻辑复杂,业务需求变动快,经过多年的研发,已经是一个代码规模庞大的工程,如何规范代码,将代码按照其功能进行分类,将代码写到合适的地方对项目的迭代起着重 ...

最新文章

  1. Blender液体烟与火VFX特效制作教程 Blender VFX Liquid Smoke Fire
  2. Oracle Mutex 机制 说明
  3. Hashtable的使用
  4. 计算机术语new一个,微机原理第一章计算机基础知识(new)
  5. HDU 2795 Billboard (线段树+贪心)
  6. 【机器人】一转眼,波士顿动力 Atlas 机器人又会过独木桥了!|湾区人工智能...
  7. 类的使用经典案例使用类的成员函数显示时间、找出元素的最大值【C++面向对象编程】
  8. Second season seventeenth episode,Chandler gets a new roommate
  9. react的生命周期函数(超详细)
  10. 为 iPhone 制作 30s 以上的铃声
  11. opencv实现人脸识别和眼部识别
  12. Android下的配置管理之道之对 OTA 更新包进行签名
  13. [原创]中国大陆民谣盘点系列(1) 沈庆《这么多年以来》
  14. Unity3d--基于对象池优化思想的音频管理系统
  15. OpenStack组件——Keyston身份认证服务
  16. 顺序队列模板简单应用算法设计:农夫过河(这个比较难,我自己都觉得难)
  17. 应用、permission、资源
  18. 电脑维修指导手册(联想)
  19. 【goldengate】官方文档笔记三 Oracle GoldenGate 实时报表
  20. 微信登录实现-Android

热门文章

  1. chrome下载速度慢,提高下载速度
  2. 【GPL和LGPL】【VPlayer不开源】【其他开源的基本都仅是ffmpeg修改部分】
  3. NOIP蒟蒻组初赛攻略
  4. Android那些你可能没了解过的---碎片化
  5. 死亡、疾病、意外,如何面对?
  6. 读书会招募 | 一起来读《蛤蟆先生去看心理医生》吧
  7. 根据王小云教授的算法写的MD5碰撞的程序[c源代码]
  8. ACL 2017 录用论文整理(长文)
  9. Visio对mysql怎么画er图_怎么用Visio画ER图
  10. arm9开发板学习笔记之程序烧录