package com.tiger.quicknews.activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.view.View; import android.view.View.OnClickListener; import android.widget.ProgressBar; import android.widget.TextView; import com.tiger.quicknews.R; import com.tiger.quicknews.adapter.NewAdapter; import com.tiger.quicknews.bean.NewModle; import com.tiger.quicknews.http.HttpUtil; import com.tiger.quicknews.http.Url; import com.tiger.quicknews.http.json.NewListJson; import com.tiger.quicknews.initview.InitView; import com.tiger.quicknews.utils.StringUtils; import com.tiger.quicknews.wedget.swiptlistview.SwipeListView; import com.umeng.analytics.MobclickAgent; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Background; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.ItemClick; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import java.util.List; @EActivity(R.layout.activity_message) public class MessageActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener, OnClickListener { @ViewById(R.id.title) protected TextView mTitle; @ViewById(R.id.swipe_container) protected SwipeRefreshLayout swipeLayout; @ViewById(R.id.listview) protected SwipeListView mListView; @ViewById(R.id.progressBar) protected ProgressBar mProgressBar; // 是否刷新操作 private boolean isRefresh = false; @Bean protected NewAdapter newAdapter; protected List<NewModle> listsModles; private int index; @AfterViews public void initView() { try { listsModles = new ArrayList<NewModle>(); mTitle.setText("消息列表"); swipeLayout.setOnRefreshListener(this); InitView.instance().initSwipeRefreshLayout(swipeLayout); InitView.instance().initListView(mListView, this); loadData(getMsgUrl(0 + "", Url.MsgId)); } catch (Exception e) { e.printStackTrace(); } } @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { isRefresh = true; loadData(getMsgUrl(0 + "", Url.MsgId)); } }, 2000); } private void loadData(String url) { if (hasNetWork()) { loadNewList(url); } else { dismissProgressDialog(); showShortToast(getString(R.string.not_network)); String result = getCacheStr("MessageActivity"); if (!StringUtils.isEmpty(result)) { getResult(result); } } } @Background void loadNewList(String url) { String result; try { result = HttpUtil.getByHttpClient(this, url); getResult(result); } catch (Exception e) { e.printStackTrace(); } } @UiThread public void getResult(String result) { setCacheStr("MessageActivity", result); if (isRefresh) { isRefresh = false; newAdapter.clear(); listsModles.clear(); } mProgressBar.setVisibility(View.GONE); swipeLayout.setRefreshing(false); List<NewModle> list = NewListJson.instance(this).readJsonNewModles(result, Url.MsgId); newAdapter.appendList(list); listsModles.addAll(list); mListView.onBottomComplete(); } @Override public void onClick(View v) { index = index + 40; loadData(getMsgUrl(index + "", Url.MsgId)); } @ItemClick(R.id.listview) protected void onItemClick(int position) { NewModle newModle = listsModles.get(position); enterDetailActivity(newModle); } public void enterDetailActivity(NewModle newModle) { Bundle bundle = new Bundle(); bundle.putSerializable("newModle", newModle); Class<?> class1; if (newModle.getImagesModle() != null && newModle.getImagesModle().getImgList().size() > 1) { class1 = ImageDetailActivity_.class; } else { class1 = DetailsActivity_.class; } openActivity(class1, bundle, 0); } @Override public void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onPause() { super.onPause(); MobclickAgent.onPause(this); } }