mvp demo:mvp+rxjava+retrofit(okhttp)+greendao

前言

  • 使用mvp架构,以及一些常用的库(mvp_rxjava_retrofit(okhttp)_greendao_gson_butterknife_logger_sweet-alert-dialog_picasso),实现一个获取豆瓣音乐列表、记录搜索历史(历史记录自动换行排列)的简单demo。
  • demo逻辑和代码都很简单,差不多是google官方架构的简化,不做累述了。
  • 主要用于个人积累及分享,如有错误请随时指出,文中可能引用其他大牛文章(仅引用链接不转载),如有侵权请告知必妥善处理。

正文

资源

demo地址

demo

mvp架构google官方链接

android-architecture

相关库来源链接

RxJava、RxAndroid、retrofit、okhttp、greenDAO、gson、butterknife、logger、sweet-alert-dialog、picasso

mvp架构搭建

View(V)和Presenter(P)基础接口:

public interface BaseView  {
    void setPresenter(T presenter);
}
public interface BasePresenter{
    void start();
}

项目介绍

demo包含一个主Activity(ManActivity),两个Fragment(ResultFragment,SearchFragment)。ManActivity仅负责添加和简单控制ResultFragment,SearchFragment。ResultFragment是第一个页面,负责根据关键字获取和展示结果;SearchFragment是第二个界面,负责输入、保存、展示关键字。点击ResultFragment上部搜索框进入SearchFragment。

创建

  1. ResultContact类、SearchContact类,其中各有两个接口,配置和管理V(extend BaseView)、P(extend BasePresenter)的接口方法,供实例类V、P实现。

    public class ResultContact {
        interface Presenter extends BasePresenter {
            void getMusicListByKw(String kw);
        }
    
        interface View extends BaseView<Presenter> {
            void showMusicList(List list);
        }
    }
    public class SearchContact {
        interface Presenter extends BasePresenter {
            void saveKwToDB(Context context, String kw);
    
            Observable<List> getKwFromDB(Context context);
        }
    
        interface View extends BaseView<Presenter> {
    
        }
    }
  2. ResultFragment、ResultPresenter、SearchFragment、SearchPresenter,实现ResultContact、SearchContact中各自的接口。这里代码不贴了,请看demo。

rxjava+retrofit(okhttp)

位于demo中sp.com.mvpdemo.retrofit包

greendao

位于sp.com.mvpdemo.greendao包,其中auto包为自动生成,详见gradle配置

AutoFeedView自动换行排列的历史关键字

位于sp.com.mvpdemo.my_views包
AutoFeedView.java中有交详细注释,原理就是一个一个关键字往后排,计算父控件宽度,超出则换行排列。目前未发现bug。

你可能感兴趣的:(Android基础温故)