CommonMvp

commonMvp 能做什么?

1、mvp 实现 model view presenter 业务和界面解耦

2、整合 网络 请求

3、简化网络调用流程

4、整合状态栏和标题栏 实现沉浸式 状态栏

5、Activity 、Fragment 中 使用方法 一致 接口式封装 生命周期

1、有问题请 提交 isuue/(QQ:194093798) 谢谢大家 持续更新

2、为新手提供一个 可靠 可用的 mvp 框架结构

集成

allprojects {    repositories {        jcenter()    }}
dependencies { implementation 'org.zhx.common:uikits:1.1.0' }

非Androidx 项目 :

build.gradle 中:

   dependencies {        implementation 'org.zhx.common:uikits:1.1.0'   }

并且 gradle.properties中 添加:

android.useAndroidX=trueandroid.enableJetifier=true

配合使用的框架

1、okhttp 、retrofit2、rxJava 、rxandroid (okhttp 实现网络全套)

2、immersionbar 实现沉浸式状态栏

3、fastjson 实现json 解析

代码调用

1、创建 Mvp contact类 将 presenter 接口、 view 接口 和okHttp serverApi 关联在一起 WeatherApi

public interface WeatherApi {   //OkHttp  api server   @GET("http://t.weather.sojson.com/api/weather/city/101030100")   public CommonObservable getTest();   //mvp  view   public interface view extends BaseMvpView {       void onWeatherInfo(WeatherInfo info);   }   //mvp presenter   public interface presenter {       void getWeatherInfo();   }}

2、 创建 WeatherPresenter 主要业务类 继承 BasePresenter 实现 WeatherApi.presenter

public class WeatherPresenter extends BasePresenter implements WeatherApi.presenter {   public WeatherPresenter(WeatherApi.view view) {       super(view);   }   @Override   public void getWeatherInfo() {       //链式调用流程       manager.with(WeatherApi.class).getTest().excute(new ObjectNetRequstAdapter(mView) {           @Override           protected void onResultData(WeatherInfo info) {               mView.onWeatherInfo(info);           }       });   }}

Activity 、Fragment 中 使用 方法 一致 同步封装 方法

3、 activity 中使用 继承 MvpActivity 实现 WeatherApi.view

public class MainActivity extends MvpActivity implements WeatherApi.view {    private TextView mTextView;    @Override    public WeatherPresenter initPresenter() {        //TODO  初始化  presenter        return new WeatherPresenter(this);    }    @Override    public int initLayout() {        //TODO 设置布局        return R.layout.activity_main;    }    @Override    public void onLoadArgumentsData(Intent intent) {        //TODO  获取传递过来的参数    }    @Override    public void onLoadDataFromSavedInstanceState(Bundle savedInstanceState) {        //TODO  从低内存 获取 参数  (如果 你 在 onSaveInstanceState(Bundle outState) 方法中保存了数据)    }    @Override    protected void onSaveInstanceState(@NonNull Bundle outState) {        super.onSaveInstanceState(outState);        //TODO 保存 数据 以供 从低内存恢复 时 还原界面    }    @Override    public void onCreatView() {        //TODO  初始化 组件        mTextView = findViewById(R.id.result_tv);    }    @Override    public void onLoadContent() {        //TODO 在这个位置 获取 网络 数据        mPresenter.getWeatherInfo();    }    @Override    public void onWeatherInfo(WeatherInfo info) {        //TODO 天气信息 (mPresenter.getWeatherInfo()  接口回调)        mTextView.setText(info.toString());    }}

4、 Fragment中使用 继承 MvpFragment 实现 WeatherApi.view

public class TestFragment extends MvpFragment implements WeatherApi.view {    private TextView mTextView;    @Override    public WeatherPresenter initPresenter() {        //TODO 初始化 天气 presenter        return new WeatherPresenter(this);    }    @Override    protected void onCreateView(View rootView) {        //TODO 初始化 view findViewById        mTextView = rootView.findViewById(R.id.result_tv);    }    @Override    public int initLayout() {        //TODO 初始化 布局文件        return R.layout.activity_main;    }    @Override    public void onLoadContent() {        //TODO 加载网络数据 或者 设置 传递过来的参数        mPresenter.getWeatherInfo();    }    @Override    public void onWeatherInfo(WeatherInfo info) {        //TODO 天气信息 (mPresenter.getWeatherInfo()  接口回调)        mTextView.setText(info.toString());    }}

demo 下载

更多相关文章

  1. Android之网络请求5————OkHttp源码2:发送请求
  2. android中检测网络连接状态简单总结
  3. 网络界面Android 网络连接--Wifi/3G
  4. 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑
  5. Android中的网络时间同步 !!!!!!!!

随机推荐

  1. 睡眠唤醒机制简介
  2. 《Android和PHP最佳实践》官方站
  3. Android: 打印Bundle内容
  4. Android崩溃后重启
  5. onAttachToWindow() 调用
  6. android实现电话状态监控
  7. Android(安卓)Bundle类
  8. Android(安卓)Gradle Study
  9. Android(安卓)AsyncTask 源码分析详解
  10. android踩坑日记