简单网络请求MVP

本文深入解析了MVP架构模式在Android应用开发中的实现细节,包括M层、P层和V层的接口定义与实现,以及如何通过Presenter协调Model与View交互,实现数据获取与展示的分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

M层接口

public interface IModel {
        void doGet(int page,Okutils.OkHttpCallBack httpCallBack);
}

M层实现类

public class Model implements IModel{

    @Override
    public void doGet(int page, Okutils.OkHttpCallBack httpCallBack) {
        Okutils.getInstance().doGet("http://www.xieast.com/api/news/news.php?type=top&page="+page,httpCallBack);
    }
}

P层接口

public interface IPresenter {
    void getData(int page);
}

P层实现类

public class Presenter implements IPresenter{
    private Model mModel;
    private IView mIView;

    public Presenter(IView IView) {
        mModel=new Model();
        mIView = IView;
    }



    public void getData(int page){
        mModel.doGet(page, new Okutils.OkHttpCallBack() {
            @Override
            public void success(String s) {
                User user = new Gson().fromJson(s, User.class);
                List<User.DataBean> data = user.getData();
                mIView.onsuccess(data);
            }

            @Override
            public void failed(Exception e) {
                mIView.onfaile(e);
            }
        });
   }
   public void des(){
       if (mModel!=null){
           mModel=null;
       }
       if (mIView!=null){
           mIView=null;
       }
   }
}

V层接口

public interface IView {
    void onsuccess(List<User.DataBean> list);

    void onfaile(Exception e);
}

在main里使用

public class MainActivity extends AppCompatActivity implements IView {
      private Presenter mPresenter= new Presenter(this);
      private int page=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPresenter.getData(page);

    }

    @Override
    public void onsuccess(List<User.DataBean> list) {
		//这里面写Adapter
    }

    @Override
    public void onfaile(Exception e) {

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值