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

相关库来源链接

RxJavaRxAndroidretrofitokhttpgreenDAOgsonbutterknifeloggersweet-alert-dialogpicasso

mvp架构搭建

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

public interface BaseView <T> {
    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<MusicBean> list);
        }
    }
    public class SearchContact {
        interface Presenter extends BasePresenter {
            void saveKwToDB(Context context, String kw);
    
            Observable<List<Keyword>> 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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值