package com.martin.ionichinabystudio.presenter.impl; import android.content.Context; import com.martin.ionichinabystudio.model.entity.Topic; import com.martin.ionichinabystudio.model.impl.TopicModelImpl; import com.martin.ionichinabystudio.model.inter.TopicModel; import com.martin.ionichinabystudio.presenter.inter.OnResultListener; import com.martin.ionichinabystudio.presenter.inter.TopicPresenter; import com.martin.ionichinabystudio.ui.view.BaseView; /** * @Description 话题Presenter的实现 * @File TopicPresenterImpl.java * @Package com.martin.ionichinabystudio.presenter.impl * @Date 2015/7/222:40 * @Author Donghongyu 1358506549@qq.com * @Version v1.0.0 */ public class TopicPresenterImpl implements TopicPresenter, OnResultListener { /*Presenter作为中间层,持有View和Model的引用*/ private BaseView mView; private TopicModel topicModel; public TopicPresenterImpl(BaseView view, Context context) { this.mView = view; topicModel = new TopicModelImpl(context); } @Override public void getTopics(String tabType, int currentPage) { //调用View层的加载动画之类的 mView.showLoading(); //调用Model层的加载网络数据的方法 topicModel.getTopics(tabType, currentPage, this); } @Override public void getTopicDetials(Topic topic) { //调用View层的加载动画之类的 mView.showLoading(); //调用Model层从话题对象中获取话题详情 topicModel.getTopicDetails(topic, this); } @Override public void onSuccess(Object result) { //调用View层的隐藏加载动画 mView.hideLoading(); //调用视图层的处理接收到数据的方法 mView.setResult(result); } @Override public void onError() { //调用View层的隐藏加载动画 mView.hideLoading(); //调用View层的显示加载出错 mView.showError(); } }