MVP进行简单粗爆的封装

引用的是OKGOF进行了网络请求,没有把RXjava集成进去。
先给大家看看一共需要几个类,这里写图片描述

那个MD5可用可不用,自己随便添加的。

使用起来也非常的方便:
看下图:
这里写图片描述

下面看看使用代码:`
public class LogoinPresenter extends BasePresenter {

private ILoginView currencyView;
public static final int BUILD_FRG_TAGS = 0;
public static final int BUILD_FRG_SEARCH_CITY = 1;

public LogoinPresenter(ILoginView currencyView) {
    super(currencyView);
    this.currencyView = currencyView;
}

@Override
public void serverResponse(String data, int flag) {
    Gson gson = new Gson();
    Log.e("serverResponse", data);
    if (flag == BUILD_FRG_TAGS) {
        CityTagBean cityTagBean = gson.fromJson(data, CityTagBean.class);
        currencyView.getTags(cityTagBean);
        Log.e("serverResponse", data);
    } else if (flag == BUILD_FRG_SEARCH_CITY) {
        SearchBean searchBean = gson.fromJson(data, SearchBean.class);
        currencyView.getSearch(searchBean);
    }
}

@Override
public void serverMoreSucceed(String data, int flag) {
    Gson gson = new Gson();
    SearchBean searchBean = gson.fromJson(data, SearchBean.class);
    currencyView.getMoreDatas(searchBean);
}

public void getSearch(int page) {
    Map<String, String> searchMap = new WeakHashMap<>();
    searchMap.put("cityId", String.valueOf("1"));
    searchMap.put("pageNo", String.valueOf(page));
    searchMap.put("pageSize", "10");
    searchMap.put("tag", "");
    getModel().setMethod(RequestContent.METHED_POST);
    accessServer(searchMap, OkgoManage.BUILD_POST_SEARCH, LogoinPresenter.BUILD_FRG_SEARCH_CITY, false);
}

public void getTags() {
    Map<String, String> map = new HashMap<>();
    map.put("cityId", "1");
    getModel().clearHearsdAndParams();
    getModel().setMethod(RequestContent.METHED_GET);
    accessServer(map, OkgoManage.BUILD_GET_SEARCH_TAGS, LogoinPresenter.BUILD_FRG_TAGS, false);
}

}
`

public interface ILoginView extends IBaseView {
    void getTags(CityTagBean cityTagBean);

    void getMoreDatas(SearchBean searchBean);

    void getSearch(SearchBean searchBean);
}

是不是发现非常的简单。

public class MainActivity extends AppCompatActivity implements ILoginView {

    private LogoinPresenter mLoginPresenter;
    private PullRefreshView mFragmentRotateHeaderWithTextViewFrame;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mFragmentRotateHeaderWithTextViewFrame = (PullRefreshView) findViewById(R.id.fragment_rotate_header_with_text_view_frame);
        mLoginPresenter = new LogoinPresenter(this);

        mLoginPresenter.getTags();
        mLoginPresenter.getSearch(1);
    }

    public void click1(View view) {
        HttpHeaders httpHeaders = new HttpHeaders();
        HttpParams httpParams = new HttpParams();
        httpHeaders.put("ancely", "ancely");
        httpHeaders.put("fanlelong", "fanlelong");
        httpParams.put("click1", "click1");
        httpParams.put("getModel", "getModel");
        mLoginPresenter.getSearch(1);
    }

    @Override
    public void showProgress(boolean enable) {
        Log.e("loginpresenter", "showProgress " + enable);
    }

    @Override
    public void showNetworkError(int errorCode, String errorDesc, String ApiInterface) {
        Log.e("loginpresenter", "showNetworkError " + errorCode);

    }

    @Override
    public void getTags(CityTagBean cityTagBean) {
        Log.e("loginpresenter", "getTags " + cityTagBean.getResult().size());
    }

    //获取到加载更多的数据
    @Override
    public void getMoreDatas(SearchBean searchBean) {
        Log.e("loginpresenter", "getMoreDatas " + searchBean.getResult().getRows().size());
    }

    @Override
    public void getSearch(SearchBean searchBean) {
        Log.e("loginpresenter", "getSearch " + searchBean.getResult().getRows().size());
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLoginPresenter.cancelRequest();
    }
}

好了就介绍到这了
放个下载链接

猜你喜欢

转载自blog.csdn.net/qq_35651451/article/details/78656283