package com.martin.ionichinabystudio.ui.fragment; import android.content.Context; import android.os.Bundle; import com.martin.ionichinabystudio.R; import com.martin.ionichinabystudio.config.Constant; import com.martin.ionichinabystudio.model.entity.Topic; import com.martin.ionichinabystudio.model.entity.TopicListResult; import com.martin.ionichinabystudio.presenter.impl.TopicPresenterImpl; import com.martin.ionichinabystudio.presenter.inter.TopicPresenter; import com.martin.ionichinabystudio.ui.activity.MainActivity; import com.martin.ionichinabystudio.ui.adapter.TopicListAdapter; import com.martin.ionichinabystudio.ui.view.BaseView; import com.martin.simpledevelop.fragment.SaFragment; import com.martin.simpledevelop.utils.log.SaLogUtils; import com.martin.simpledevelop.utils.log.SaToastUtils; import com.martin.simpledevelop.widget.SaRefreshLayout; import com.rey.material.widget.ListView; import com.rey.material.widget.ProgressView; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Background; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import java.util.List; /** * @Description * @File ${FILE_NAME} * @Package com.martin.ionichinabystudio.ui.fragment * @Date 2015/7/812:50 * @Author Donghongyu 1358506549@qq.com * @Version v1.0.0 */ @EFragment(R.layout.fragment_topics) public class TopicsFragment extends SaFragment implements BaseView, SaRefreshLayout.OnRefreshListener, SaRefreshLayout.OnLoadListener { Context mContext; MainActivity mActivity; //查询话题的类型 private String mTopicType; //谷歌的下拉刷新控件 @ViewById(R.id.swipe_refresh_layout) SaRefreshLayout mRefreshLayout; //显示话题的列表控件 @ViewById(R.id.topic_list) ListView listView; @ViewById(R.id.progress_pv_circular) ProgressView mProgressView; //话题的数据适配器 TopicListAdapter topicListAdapter; //数据源 List<Topic> topicList = new ArrayList<Topic>(); //话题的Presenter TopicPresenter topicPresenter; //当前的数据页 int currentPage = 1; //获取数据的类型,刷新出来的数据,加载出来的数据 boolean isRefresh = true; @AfterViews public void init() { SaLogUtils.e(TAG, "查询话题。。。。"); //接收到初始化的时候传入的类型 Bundle bundle = getArguments(); mTopicType = bundle != null ? bundle.getString(Constant.QUERY_TOPIC_TYPE) : ""; mActivity = (MainActivity) getActivity(); mContext = mActivity; initData(); //设置刷新监听 mRefreshLayout.setOnRefreshListener(this); //设置加载监听 mRefreshLayout.setOnLoadListener(this); //设置刷新控件的样式 mRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); //设置刷新控件的背景色 mRefreshLayout.setProgressBackgroundColorSchemeColor(R.color.gray); //创建话题的数据适配器 topicListAdapter = new TopicListAdapter(mActivity, mContext, topicList, R.layout.item_topics); //给列表控件设置数据适配器 listView.setAdapter(topicListAdapter); } //刚初始化是图片段的数据查询操作 @Background public void initData() { topicPresenter = new TopicPresenterImpl(this, mContext); topicPresenter.getTopics(mTopicType, 1); } @Override public void setResult(Object topic) { TopicListResult topicListResult = (TopicListResult) topic; if (topicListResult == null) return; if (isRefresh) { topicListAdapter.addRefreshDatas(topicListResult.getData()); } else { topicListAdapter.addAll(topicListResult.getData()); } topicListAdapter.notifyDataSetChanged(); } @Override public void showLoading() { //开始进度条 mProgressView.start(); // mRefreshLayout.setRefreshing(true); // SaToastUtils.showToast(mContext, "显示加载的控件。。。"); } @Override public void hideLoading() { //开始进度条 mProgressView.stop(); mRefreshLayout.setRefreshing(false); mRefreshLayout.setLoading(false); // SaToastUtils.showToast(mContext, "隐藏加载的控件。。。"); } @Override public void showError() { mRefreshLayout.setRefreshing(false); mRefreshLayout.setLoading(false); SaToastUtils.showToast(mContext, "网络异常"); } //刷新的监听 @Override public void onRefresh() { isRefresh = true; // mRefreshLayout.setLoading(false); currentPage = 1; topicPresenter.getTopics(mTopicType, currentPage); } //加载的监听 @Override public void onLoad() { isRefresh = false; // mRefreshLayout.setRefreshing(false); currentPage++; topicPresenter.getTopics(mTopicType, currentPage); } }