(本人自行攒写,难免有错误,请谅解)mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。
项目中大部分是面对接口编程,通过P层可以预先将所有需要的接口功能写出来,进而进行实现,大大提高了项目高内聚,低耦合。适合于团队开发项目。
今天我们是用MVP的设计框架模板来实现一个ListView的上拉刷新下拉加载更多的功能。
项目结构如下图;
1、首先我们ListViewPresenters.java类,他的作用是,控制M业务逻辑层,去获取我们想要的数据,然后通知V层去更新他们对应的UI。由于我们的需求明确,就是实现Listview的上拉刷新,下拉加载更多,初始化控件,设置上拉下拉刷新监听。因此我们可以先把功能接口都写好,让ListViewPresenters去实现其功能即可。
package com.android.presenters;
import java.util.ArrayList;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import com.android.handlers.ListViewHandle;
import com.android.services.ListViewService;
import com.android.services.si.IListViewService;
import com.android.view.ListViewFerris;
import com.android.view.vi.IListViewFerris;
import com.android.widget.listview.FerrisListView.OnStartListener;
public class ListViewPresenters {
private IListViewFerris iListViewFerris;
private IListViewService iListViewService;
private FragmentActivity mActivity;
private View view;
private int index = 1;
public ListViewPresenters(FragmentActivity mActivi