LeHe开发日志<二>

开发日志<二>——笑话模块总结

笑话功能很简单,就是一个列表显示从网络上获取的20条笑话,这里有以下几个知识点需要注意:
<->.MVP +Dragger2模式的使用
这里参考了google的MVP+dragger2的demo,直接在presenter的构造方法上使用@Inject,而在fragment中直接通过Componment来获取presenter对象,在Module中不再去提供Presenter对象。不废话,直接贴代码。
JokerModule.class

@Module
public class JokerModule {
    private final JokerContract.View mView;

    public JokerModule(JokerContract.View view) {
        mView = view;
    }

    @Provides
    JokerContract.View provideTasksContractView() {
        return mView;
    }
}

JokerComponent.class

@Subcomponent(modules = JokerModule.class)
public interface JokerComponent {
    JokerPresenter getJokerPresenter();
}

JokerPresenter.class


public class JokerPresenter implements JokerContract.UserActionsListener {

    private APIManager mAPIManager;
    private JokerContract.View mView;
    PreferencesManager mPreferencesManager;
    @Inject
    JokerPresenter(APIManager apiManager,JokerContract.View view,PreferencesManager preferencesManager){
        mAPIManager = apiManager;
        mView =view;
        mPreferencesManager=preferencesManager;
    }

在Fragment中获取Presenter对象

        mPresenter = LeHeApp.get(getActivity()).getAppComponent().plus(new JokerModule(this)).getJokerPresenter();

还有就是参考Google的Demo,将MVP模式中的view 和Presenter的接口放在一个JokerContract类中。
Google的Demo入口
<二>.针对多重JSON返回的解析也做了下处理。初始化retrofit:

 Retrofit.Builder builder = new Retrofit.Builder();
        builder.client(okHttpClient)
                .baseUrl(ApiService.SERVER_URL)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create());

这里已经添加了GsonConverterFactory,所以我将retroft返回的泛型改为Gson的 JsonObject类型,然后在收到的result中获取Joker对象。

 @GET("showapi_open_bus/showapi_joke/joke_text")
    Observable<JsonObject> getJokersYY(@Header("apikey") String apikey, @Query("page")

以上就是笑话模块的总结,目前只是做到获取数据并显示出来,后期打算增加本地数据库功能,将获取到笑话保存在本地,每次下来刷新从服务器获取最新的,再增加加载更多,则是从本地数据库中获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值