package com.hyrt.cei.ui.ebook; import java.util.ArrayList; import java.util.List; import com.hyrt.cei.R; import com.hyrt.cei.adapter.GoodReportAdapter; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.dzb.ui.HomePageDZB; import com.hyrt.cei.util.MyTools; import com.hyrt.cei.util.WriteOrRead; import com.hyrt.cei.util.XmlUtil; import com.hyrt.cei.vo.ColumnEntry; import com.hyrt.cei.vo.Report; import com.hyrt.cei.webservice.service.Service; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class GoodsReportActivity extends BaseActivity implements OnClickListener { private ImageView homePage, homeReport, goodsView, sortView, partView, mianfeiReport, findReport; private ImageButton back, bookSelf; private ListView goodList; private List<Report> goodData; private ColumnEntry columnEntry; private GoodReportAdapter adapter; private int pageSize = 1; private LinearLayout loadProgressBar; private TextView moreTextView; private LinearLayout prolayout; private String bgId; private Handler goodHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 2) { if (msg.arg1 < 20) { moreTextView.setVisibility(View.GONE); } else { moreTextView.setVisibility(View.VISIBLE); } loadProgressBar.setVisibility(View.GONE); if (adapter != null) adapter.notifyDataSetChanged(); } if (msg.what == 3) { loadProgressBar.setVisibility(View.GONE); moreTextView.setVisibility(View.GONE); } else { adapter = new GoodReportAdapter(GoodsReportActivity.this, goodData, goodList); if (goodData.size() >= 20) addPageMore(); goodList.setAdapter(adapter); } prolayout.setVisibility(View.GONE); } }; private void addPageMore() { View view = LayoutInflater.from(this).inflate(R.layout.list_page_load, null); moreTextView = (TextView) view.findViewById(R.id.more_id); loadProgressBar = (LinearLayout) view.findViewById(R.id.load_id); moreTextView.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // 隐藏"加载更多" moreTextView.setVisibility(View.GONE); // 显示进度条 loadProgressBar.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { // 加载模拟数据:下一页数据, 在正常情况下,上面的休眠是不需要,直接使用下面这句代码加载相关数据 try { if (bgId != null&&!bgId.equals("")) { pageSize++; String addBg = Service.queryReport(bgId, "bg", pageSize + ""); List<Report> addReport = XmlUtil .parseReport(addBg); if (addReport.size() == 0) { goodHandler.sendEmptyMessage(3); return; } goodData.addAll(addReport); Message msg = new Message(); msg.what = 2; msg.arg1 = addReport.size(); goodHandler.sendMessage(msg); } } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } }); goodList.addFooterView(view); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); homePage = null; homeReport = null; goodsView = null; sortView = null; partView = null; mianfeiReport = null; findReport = null; bookSelf = null; back = null; columnEntry = null; goodHandler = null; goodData = null; adapter = null; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.yjbg_jingpin); // overridePendingTransition(R.anim.push_in, R.anim.push_out); initView(); prolayout.setVisibility(View.VISIBLE); initData(); } private void initView() { TextView title=(TextView)(findViewById(R.id.top).findViewById(R.id.title)); title.setText("精彩报告"); prolayout = (LinearLayout) findViewById(R.id.report_jingp_pro); goodList = (ListView) findViewById(R.id.yjbg_goodreport_list); // homePage = (ImageView) findViewById(R.id.iv_good_report_page_home); // homePage.setOnClickListener(this); // homeReport = (ImageView) findViewById(R.id.iv_good_report_home); // homeReport.setOnClickListener(this); // goodsView = (ImageView) findViewById(R.id.iv_good_report_goods); // goodsView.setOnClickListener(this); // sortView = (ImageView) findViewById(R.id.iv_good_report_sort); // sortView.setOnClickListener(this); // partView = (ImageView) findViewById(R.id.iv_good_report_partition); // partView.setOnClickListener(this); // mianfeiReport = (ImageView) findViewById(R.id.iv_good_report_miamfei); // mianfeiReport.setOnClickListener(this); // findReport = (ImageView) findViewById(R.id.iv_good_report_find); // findReport.setOnClickListener(this); bookSelf = (ImageButton) (findViewById(R.id.top).findViewById(R.id.ib_bg_bookshelf)); bookSelf.setOnClickListener(this); back = (ImageButton) (findViewById(R.id.top).findViewById(R.id.ib_bg_back)); back.setOnClickListener(this); } private void initData() { columnEntry = ((CeiApplication) getApplication()).columnEntry; goodData = new ArrayList<Report>(); // 更据业务ID查询业务里面的数据 if (ReadReportActivity.allColBg != null && ReadReportActivity.allColBg.getId() != null && !ReadReportActivity.allColBg.getId().equals("")) { String allBgId = ReadReportActivity.allColBg.getId(); List<ColumnEntry> allCol = columnEntry .getEntryChildsForParent(allBgId); for (ColumnEntry columnEntry : allCol) { if (columnEntry.getName().equals("精品推荐")) { bgId = columnEntry.getId(); } } } if (((CeiApplication) getApplication()).isNet()) { new Thread() { @Override public void run() { // 所有精彩报告 if (bgId != null && !bgId.equals("")) { String retData = Service.queryReport(bgId, "bg", pageSize + ""); try { goodData.clear(); goodData.addAll(XmlUtil.parseReport(retData)); if (goodHandler != null) { goodHandler.sendEmptyMessage(1); } } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); e.printStackTrace(); } } } }.start(); } else { try { goodData.addAll(XmlUtil.parseReport(WriteOrRead.read( MyTools.nativeData, "goodReport.xml"))); if (goodHandler != null) { goodHandler.sendEmptyMessage(1); } } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void onClick(View v) { // if (ReadReportActivity.activitys != null) { if (v == homeReport) { // 阅读报告页 Intent intent = new Intent(this, ReadReportActivity.class); startActivity(intent); // saveActivity(ReadReportActivity.class); } else if (v == goodsView) { /* * Intent intent = new Intent(this, GoodsReportActivity.class); * startActivity(intent); saveActivity(GoodsReportActivity.class); */ return; // 精彩报告页 } else if (v == sortView) { // 排序报告页 Intent intent = new Intent(this, SortReportActivity.class); startActivity(intent); // saveActivity(SortReportActivity.class); } else if (v == partView) { // 分类报告页 Intent intent = new Intent(this, PartitionReportActivity.class); startActivity(intent); // saveActivity(PartitionReportActivity.class); } else if (v == mianfeiReport) { // 免费报告 Intent intent = new Intent(this, MianfeiReportActivity.class); startActivity(intent); // saveActivity(MianfeiReportActivity.class); } else if (v == findReport) { // 报告查询查询 Intent intent = new Intent(this, FindReportActivity.class); startActivity(intent); // saveActivity(FindReportActivity.class); } else if (v == homePage) { // 首页 Intent intent = new Intent(this, HomePageDZB.class); startActivity(intent); // ReadReportActivity.activitys.clear(); } else if (v == back) { // 返回键 /* * if (ReadReportActivity.activitys.size() > 0) { * ReadReportActivity.activitys .remove(ReadReportActivity.activitys * .get(ReadReportActivity.activitys.size() - 1)); Intent intent = * new Intent( this, ReadReportActivity.activitys * .get(ReadReportActivity.activitys.size() - 1)); * startActivity(intent); } */ } else if (v == bookSelf) { // 右侧数据图片 Intent intent = new Intent(this, CeiShelfBookActivity.class); startActivity(intent); // saveActivity(CeiShelfBookActivity.class); } // this.finish(); } /* * private void saveActivity(Class<?> clas) { if * (ReadReportActivity.activitys.contains(clas)) { * ReadReportActivity.activitys.remove(clas); * ReadReportActivity.activitys.add(clas); } else { * ReadReportActivity.activitys.add(clas); } } */ @Override protected void onRestart() { if (adapter != null) adapter.notifyDataSetChanged(); super.onRestart(); } }