Android RxJava+Retrofit2.0+MVP模式整合

来源:互联网 发布:中银淘宝校园卡 编辑:程序博客网 时间:2024/05/18 22:08

这里写图片描述

  • api包主要存放网络请求接口
  • bean包中存放实体类
  • model包中存放处理数据
  • pesenter包中存放主导器
  • view包中存放界面处理

view的代码:

/***WeatherView 用于处理界面显示*/public interface WeatherView {    void showProgress();    void hideProgress();    void loadWeather(WeatherData weatherData);}package com.lidong.demo.android_rapid_development_of_library.mvp;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.util.Log;import android.widget.TextView;import android.widget.Toast;import com.lidong.android_ibrary.LoadingUIHelper;import com.lidong.demo.android_rapid_development_of_library.R;import com.lidong.demo.android_rapid_development_of_library.mvp.bean.WeatherData;import com.lidong.demo.android_rapid_development_of_library.mvp.presenter.WeatherPresenter;import com.lidong.demo.android_rapid_development_of_library.mvp.presenter.WeatherPresenterImp;import com.lidong.demo.android_rapid_development_of_library.mvp.view.WeatherView;import butterknife.Bind;import butterknife.ButterKnife;/***展示天气详情*/public class WeatherActivity extends AppCompatActivity implements WeatherView {    @Bind(R.id.toolbar)    Toolbar toolbar;    @Bind(R.id.textView1)    TextView textView1;    @Bind(R.id.textView2)    TextView textView2;    @Bind(R.id.textView3)    TextView textView3;    @Bind(R.id.textView4)    TextView textView4;    @Bind(R.id.textView5)    TextView textView5;    @Bind(R.id.textView6)    TextView textView6;    @Bind(R.id.textView7)    TextView textView7;    @Bind(R.id.textView8)    TextView textView8;    @Bind(R.id.textView9)    TextView textView9;    private WeatherPresenter mWeatherPresenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_weather);        ButterKnife.bind(this);        setSupportActionBar(toolbar);        mWeatherPresenter = new WeatherPresenterImp(this);        mWeatherPresenter.getWeatherData("2", "苏州");    }    @Override    public void showProgress() {        LoadingUIHelper.showDialogForLoading(this,"获取数据",false);    }    @Override    public void hideProgress() {        LoadingUIHelper.hideDialogForLoading();        Toast.makeText(this,"服务器异常",Toast.LENGTH_SHORT).show();    }    @Override    public void loadWeather(WeatherData weatherData) {        Log.d("weatherData", "weatherData==" + weatherData.toString());        textView1.setText("城市:"+weatherData.getResult().getToday().getCity());        textView2.setText("日期:"+weatherData.getResult().getToday().getWeek());        textView3.setText("今日温度:"+weatherData.getResult().getToday().getTemperature());        textView4.setText("天气标识:" +WeatherIDUtils.transfer(weatherData.getResult().getToday().getWeather_id().getFa()));        textView5.setText("穿衣指数:" + weatherData.getResult().getToday().getDressing_advice());        textView6.setText("干燥指数:"+weatherData.getResult().getToday().getDressing_index());        textView7.setText("紫外线强度:"+weatherData.getResult().getToday().getUv_index());        textView8.setText("穿衣建议:"+weatherData.getResult().getToday().getDressing_advice());        textView9.setText("旅游指数:"+weatherData.getResult().getToday().getTravel_index());    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90

model层中的代码

/** * * Created by lidong on 2016/3/2. */public interface WeatherModel {    /**     * 获取天气信息     * @param format      * @param city     */    void getWeatherData(String format,String city);}/** * Created by lidong on 2016/3/2. */public class WeatherModelImp  implements WeatherModel {    private WeatherOnListener mWeatherOnListener;    public WeatherModelImp(WeatherOnListener mWeatherOnListener) {        this.mWeatherOnListener = mWeatherOnListener;    }    @Override    public void getWeatherData(String format,String city) {                ApiManager.getWeatherData(format,city).subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Action1<WeatherData>() {                    @Override                    public void call(WeatherData weatherData) {                        mWeatherOnListener.onSuccess(weatherData);                    }                }, new Action1<Throwable>() {                    @Override                    public void call(Throwable throwable) {                        mWeatherOnListener.onFailure(throwable);                    }                });    }    /**    *回调接口    */    public interface WeatherOnListener{        void onSuccess(WeatherData s);        void onFailure(Throwable e);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

presenter层中的代码:

/** * Created by lidong on 2016/3/2. */public interface WeatherPresenter {    /**     * 获取天气信息     * @param format     * @param city     */    void getWeatherData(String format, String city);}public class WeatherPresenterImp  implements WeatherPresenter ,WeatherModelImp.WeatherOnListener{    /**     * WeatherModel和WeatherView都是通过接口来实现,这就Java设计原则中依赖倒置原则使用     */   private WeatherModel mWeatherModel;   private WeatherView mWeatherView;    public WeatherPresenterImp( WeatherView mWeatherView) {        this.mWeatherModel = new WeatherModelImp(this);        this.mWeatherView = mWeatherView;    }    @Override    public void getWeatherData(String format, String city) {        mWeatherView.showProgress();        mWeatherModel.getWeatherData(format,city);    }    @Override    public void onSuccess(WeatherData s) {        mWeatherView.loadWeather(s);        mWeatherView.hideProgress();        Log.d("-------", "onSuccess() called with: " + "s = [" + s.toString() + "]");    }    @Override    public void onFailure(Throwable e) {        mWeatherView.hideProgress();        Log.d("-------","onFailure"+e.getMessage());    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

api层的代码

package com.lidong.demo.android_rapid_development_of_library.mvp.api;import com.lidong.demo.android_rapid_development_of_library.mvp.bean.WeatherData;import retrofit.GsonConverterFactory;import retrofit.Retrofit;import retrofit.RxJavaCallAdapterFactory;import rx.Observable;/** * Created by lidong on 2016/3/2. */public class ApiManager {    private static final String ENDPOINT = "http://v.juhe.cn";    private static final Retrofit sRetrofit = new Retrofit .Builder()            .baseUrl(ENDPOINT)            .addConverterFactory(GsonConverterFactory.create())            .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) // 使用RxJava作为回调适配器            .build();    private static final ApiManagerService apiManager = sRetrofit.create(ApiManagerService.class);    /**     * 获取天气数据     * @param city     * @return     */    public static Observable<WeatherData> getWeatherData(String format, String city) {        return apiManager.getWeatherData(format,city,"ad1d20bebafe0668502c8eea5ddd0333");    }}package com.lidong.demo.android_rapid_development_of_library.mvp.api;import com.lidong.demo.android_rapid_development_of_library.mvp.bean.WeatherData;import retrofit.http.GET;import retrofit.http.Query;import rx.Observable;/** * @className:ApiManagerService * Created by lidong on 2016/3/2. */public interface ApiManagerService {//http://v.juhe.cn/weather/index?format=2&cityname=%E8%8B%8F%E5%B7%9E&key=ad1d20bebafe0668502c8eea5ddd0333    /**     * 获取数据     * @param cityname     * @param key     * @return     */    @GET("/weather/index")    Observable<WeatherData> getWeatherData(@Query("format") String format,@Query("cityname") String cityname,@Query("key") String key);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

bean层的代码

package com.lidong.demo.android_rapid_development_of_library.mvp.bean;import java.util.List;/** * Created by Administrator on 2015/12/21. */public class WeatherData {    /**     * resultcode : 200     * reason : successed!     * result : {"sk":{"temp":"18","wind_direction":"东南风","wind_strength":"2级","humidity":"41%","time":"14:32"},"today":{"temperature":"8℃~17℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期三","city":"苏州","date_y":"2016年03月02日","dressing_index":"较冷","dressing_advice":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。","uv_index":"弱","comfort_index":"","wash_index":"较适宜","travel_index":"较适宜","exercise_index":"较适宜","drying_index":""},"future":[{"temperature":"8℃~17℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期三","date":"20160302"},{"temperature":"11℃~21℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期四","date":"20160303"},{"temperature":"12℃~19℃","weather":"多云转阴","weather_id":{"fa":"01","fb":"02"},"wind":"东南风3-4 级","week":"星期五","date":"20160304"},{"temperature":"10℃~19℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东北风3-4 级","week":"星期六","date":"20160305"},{"temperature":"11℃~20℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期日","date":"20160306"},{"temperature":"10℃~19℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东北风3-4 级","week":"星期一","date":"20160307"},{"temperature":"12℃~19℃","weather":"多云转阴","weather_id":{"fa":"01","fb":"02"},"wind":"东南风3-4 级","week":"星期二","date":"20160308"}]}     * error_code : 0     */    private String resultcode;    private String reason;    /**     * sk : {"temp":"18","wind_direction":"东南风","wind_strength":"2级","humidity":"41%","time":"14:32"}     * today : {"temperature":"8℃~17℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期三","city":"苏州","date_y":"2016年03月02日","dressing_index":"较冷","dressing_advice":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。","uv_index":"弱","comfort_index":"","wash_index":"较适宜","travel_index":"较适宜","exercise_index":"较适宜","drying_index":""}     * future : [{"temperature":"8℃~17℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期三","date":"20160302"},{"temperature":"11℃~21℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期四","date":"20160303"},{"temperature":"12℃~19℃","weather":"多云转阴","weather_id":{"fa":"01","fb":"02"},"wind":"东南风3-4 级","week":"星期五","date":"20160304"},{"temperature":"10℃~19℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东北风3-4 级","week":"星期六","date":"20160305"},{"temperature":"11℃~20℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东南风3-4 级","week":"星期日","date":"20160306"},{"temperature":"10℃~19℃","weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"东北风3-4 级","week":"星期一","date":"20160307"},{"temperature":"12℃~19℃","weather":"多云转阴","weather_id":{"fa":"01","fb":"02"},"wind":"东南风3-4 级","week":"星期二","date":"20160308"}]     */    private ResultEntity result;    private int error_code;    public void setResultcode(String resultcode) {        this.resultcode = resultcode;    }    public void setReason(String reason) {        this.reason = reason;    }    public void setResult(ResultEntity result) {        this.result = result;    }    public void setError_code(int error_code) {        this.error_code = error_code;    }    public String getResultcode() {        return resultcode;    }    public String getReason() {        return reason;    }    public ResultEntity getResult() {        return result;    }    public int getError_code() {        return error_code;    }    public static class ResultEntity {        /**         * temp : 18         * wind_direction : 东南风         * wind_strength : 2级         * humidity : 41%         * time : 14:32         */        private SkEntity sk;        /**         * temperature : 8℃~17℃         * weather : 多云         * weather_id : {"fa":"01","fb":"01"}         * wind : 东南风3-4 级         * week : 星期三         * city : 苏州         * date_y : 2016年03月02日         * dressing_index : 较冷         * dressing_advice : 建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。         * uv_index : 弱         * comfort_index :         * wash_index : 较适宜         * travel_index : 较适宜         * exercise_index : 较适宜         * drying_index :         */        private TodayEntity today;        /**         * temperature : 8℃~17℃         * weather : 多云         * weather_id : {"fa":"01","fb":"01"}         * wind : 东南风3-4 级         * week : 星期三         * date : 20160302         */        private List<FutureEntity> future;        public void setSk(SkEntity sk) {            this.sk = sk;        }        public void setToday(TodayEntity today) {            this.today = today;        }        public void setFuture(List<FutureEntity> future) {            this.future = future;        }        public SkEntity getSk() {            return sk;        }        public TodayEntity getToday() {            return today;        }        public List<FutureEntity> getFuture() {            return future;        }        public static class SkEntity {            private String temp;            private String wind_direction;            private String wind_strength;            private String humidity;            private String time;            public void setTemp(String temp) {                this.temp = temp;            }            public void setWind_direction(String wind_direction) {                this.wind_direction = wind_direction;            }            public void setWind_strength(String wind_strength) {                this.wind_strength = wind_strength;            }            public void setHumidity(String humidity) {                this.humidity = humidity;            }            public void setTime(String time) {                this.time = time;            }            public String getTemp() {                return temp;            }            public String getWind_direction() {                return wind_direction;            }            public String getWind_strength() {                return wind_strength;            }            public String getHumidity() {                return humidity;            }            public String getTime() {                return time;            }            @Override            public String toString() {                return "SkEntity{" +                        "temp='" + temp + '\'' +                        ", wind_direction='" + wind_direction + '\'' +                        ", wind_strength='" + wind_strength + '\'' +                        ", humidity='" + humidity + '\'' +                        ", time='" + time + '\'' +                        '}';            }        }        public static class TodayEntity {            @Override            public String toString() {                return "TodayEntity{" +                        "temperature='" + temperature + '\'' +                        ", weather='" + weather + '\'' +                        ", weather_id=" + weather_id +                        ", wind='" + wind + '\'' +                        ", week='" + week + '\'' +                        ", city='" + city + '\'' +                        ", date_y='" + date_y + '\'' +                        ", dressing_index='" + dressing_index + '\'' +                        ", dressing_advice='" + dressing_advice + '\'' +                        ", uv_index='" + uv_index + '\'' +                        ", comfort_index='" + comfort_index + '\'' +                        ", wash_index='" + wash_index + '\'' +                        ", travel_index='" + travel_index + '\'' +                        ", exercise_index='" + exercise_index + '\'' +                        ", drying_index='" + drying_index + '\'' +                        '}';            }            private String temperature;            private String weather;            /**             * fa : 01             * fb : 01             */            private WeatherIdEntity weather_id;            private String wind;            private String week;            private String city;            private String date_y;            private String dressing_index;            private String dressing_advice;            private String uv_index;            private String comfort_index;            private String wash_index;            private String travel_index;            private String exercise_index;            private String drying_index;            public void setTemperature(String temperature) {                this.temperature = temperature;            }            public void setWeather(String weather) {                this.weather = weather;            }            public void setWeather_id(WeatherIdEntity weather_id) {                this.weather_id = weather_id;            }            public void setWind(String wind) {                this.wind = wind;            }            public void setWeek(String week) {                this.week = week;            }            public void setCity(String city) {                this.city = city;            }            public void setDate_y(String date_y) {                this.date_y = date_y;            }            public void setDressing_index(String dressing_index) {                this.dressing_index = dressing_index;            }            public void setDressing_advice(String dressing_advice) {                this.dressing_advice = dressing_advice;            }            public void setUv_index(String uv_index) {                this.uv_index = uv_index;            }            public void setComfort_index(String comfort_index) {                this.comfort_index = comfort_index;            }            public void setWash_index(String wash_index) {                this.wash_index = wash_index;            }            public void setTravel_index(String travel_index) {                this.travel_index = travel_index;            }            public void setExercise_index(String exercise_index) {                this.exercise_index = exercise_index;            }            public void setDrying_index(String drying_index) {                this.drying_index = drying_index;            }            public String getTemperature() {                return temperature;            }            public String getWeather() {                return weather;            }            public WeatherIdEntity getWeather_id() {                return weather_id;            }            public String getWind() {                return wind;            }            public String getWeek() {                return week;            }            public String getCity() {                return city;            }            public String getDate_y() {                return date_y;            }            public String getDressing_index() {                return dressing_index;            }            public String getDressing_advice() {                return dressing_advice;            }            public String getUv_index() {                return uv_index;            }            public String getComfort_index() {                return comfort_index;            }            public String getWash_index() {                return wash_index;            }            public String getTravel_index() {                return travel_index;            }            public String getExercise_index() {                return exercise_index;            }            public String getDrying_index() {                return drying_index;            }            public static class WeatherIdEntity {                private String fa;                private String fb;                public void setFa(String fa) {                    this.fa = fa;                }                public void setFb(String fb) {                    this.fb = fb;                }                public String getFa() {                    return fa;                }                public String getFb() {                    return fb;                }            }        }        public static class FutureEntity {            private String temperature;            private String weather;            /**             * fa : 01             * fb : 01             */            private WeatherIdEntity weather_id;            private String wind;            private String week;            private String date;            public void setTemperature(String temperature) {                this.temperature = temperature;            }            public void setWeather(String weather) {                this.weather = weather;            }            public void setWeather_id(WeatherIdEntity weather_id) {                this.weather_id = weather_id;            }            public void setWind(String wind) {                this.wind = wind;            }            public void setWeek(String week) {                this.week = week;            }            public void setDate(String date) {                this.date = date;            }            public String getTemperature() {                return temperature;            }            public String getWeather() {                return weather;            }            public WeatherIdEntity getWeather_id() {                return weather_id;            }            public String getWind() {                return wind;            }            public String getWeek() {                return week;            }            public String getDate() {                return date;            }            public static class WeatherIdEntity {                private String fa;                private String fb;                public void setFa(String fa) {                    this.fa = fa;                }                public void setFb(String fb) {                    this.fb = fb;                }                public String getFa() {                    return fa;                }                public String getFb() {                    return fb;                }                @Override                public String toString() {                    return "WeatherIdEntity{" +                            "fa='" + fa + '\'' +                            ", fb='" + fb + '\'' +                            '}';                }            }            @Override            public String toString() {                return "FutureEntity{" +                        "temperature='" + temperature + '\'' +                        ", weather='" + weather + '\'' +                        ", weather_id=" + weather_id +                        ", wind='" + wind + '\'' +                        ", week='" + week + '\'' +                        ", date='" + date + '\'' +                        '}';            }        }        @Override        public String toString() {            return "ResultEntity{" +                    "sk=" + sk +                    ", today=" + today +                    ", future=" + future +                    '}';        }    }    @Override    public String toString() {        return "WeatherData{" +                "resultcode='" + resultcode + '\'' +                ", reason='" + reason + '\'' +                ", result=" + result +                ", error_code=" + error_code +                '}';    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492

总结

最后总结一下,通过使用mvp对代码进行分层之后,模块化更加的清楚,假如要换网络框架,需要修改model层和api层的代码,其他的层的代码都不需要再动,这样各层之间保持单一职责。代码的易读性变得更强了。

代码: 
https://github.com/lidong1665/AndroidRapidLibrary/tree/master/Android-Rapid-Development-Of-Library/app/src/main/java/com/lidong/demo/mvp

代码的运行效果: 

这里写图片描述

转自:http://blog.csdn.net/u010046908/article/details/50781360


0 0
原创粉丝点击