package com.hyrt.cei.ui.ebook; 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.util.Log; 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 MianfeiReportActivity extends BaseActivity implements OnClickListener{ private ImageView homePage, homeReport, goodsView, sortView, partView, mianfeiReport, findReport; private ImageButton back,bookSelf; private ListView mianFeiList; private List<Report> reportData; private GoodReportAdapter adapter; private StringBuilder colIDs = null; private ColumnEntry columnEntry; private int pageSize=1; private LinearLayout loadProgressBar; private TextView moreTextView; private LinearLayout prolayout; private Handler handler=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(); }else if(msg.what==3){ loadProgressBar.setVisibility(View.GONE); moreTextView.setVisibility(View.GONE); }else{ super.handleMessage(msg); adapter=new GoodReportAdapter(MianfeiReportActivity.this, reportData, mianFeiList); addPageMore(); mianFeiList.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 { pageSize++; String addBg=dataChange(); List<Report> addReport= XmlUtil.parseReport(addBg); if(addReport==null||addReport.size()==0){ handler.sendEmptyMessage(3); return; } reportData.addAll(addReport); Message msg=new Message(); msg.what=2; msg.arg1=addReport.size(); handler.sendMessage(msg); } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } }); mianFeiList.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; handler=null; reportData=null; mianFeiList=null; adapter=null; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.yjbg_mianfei); overridePendingTransition(R.anim.push_in, R.anim.push_out); columnEntry = ((CeiApplication) getApplication()).columnEntry; initView(); prolayout.setVisibility(View.VISIBLE); initData(); } private void initData(){ if(((CeiApplication) getApplication()).isNet()){ new Thread(){ @Override public void run() { if (!dataChange().equals("")) { String mianfeiBg=dataChange(); try { Log.i("sys", mianfeiBg); System.out.println(mianfeiBg); reportData= XmlUtil.parseReport(mianfeiBg); WriteOrRead.write(mianfeiBg, MyTools.nativeData, "mianfeiReport.xml"); if(handler!=null){ handler.sendEmptyMessage(1); } } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); e.printStackTrace(); } } } }.start(); }else{ try { reportData= XmlUtil.parseReport(WriteOrRead.read(MyTools.nativeData, "mianfeiReport.xml")); if(handler!=null){ handler.sendEmptyMessage(1); } } catch (Exception e) { MyTools.showPushXml(getApplicationContext()); // TODO Auto-generated catch block e.printStackTrace(); } } } private String dataChange() { ColumnEntry allColBg = columnEntry.getColByName(((CeiApplication) getApplication()).nowStart); if (allColBg != null && allColBg.getId() != null && !allColBg.getId().equals("")) { String allBgId = allColBg.getId(); colIDs = new StringBuilder(); List<ColumnEntry> allCol = columnEntry .getEntryChildsForParent(allBgId); for (ColumnEntry columnEntry : allCol) { colIDs.append(columnEntry.getId() + ","); } if (colIDs != null && !colIDs.equals("")) { String sortBg = Service.queryAllFreeReport(colIDs.toString() .substring(0, colIDs.toString().length() - 1), pageSize+"", ""); return sortBg; } } return ""; } private void initView(){ TextView title=(TextView)(findViewById(R.id.top).findViewById(R.id.title)); title.setText("免费报告"); prolayout=(LinearLayout)findViewById(R.id.report_mianf_pro); mianFeiList=(ListView) findViewById(R.id.yjbg_mianfeireport_list); // homePage = (ImageView) findViewById(R.id.iv_mianfei_report_page_home); // homePage.setOnClickListener(this); // homeReport = (ImageView) findViewById(R.id.iv_mianfei_report_home); // homeReport.setOnClickListener(this); // goodsView = (ImageView) findViewById(R.id.iv_mianfei_report_goods); // goodsView.setOnClickListener(this); // sortView = (ImageView) findViewById(R.id.iv_mianfei_report_sort); // sortView.setOnClickListener(this); // partView = (ImageView) findViewById(R.id.iv_mianfei_report_partition); // partView.setOnClickListener(this); // mianfeiReport = (ImageView) findViewById(R.id.iv_mianfei_report_miamfei); // mianfeiReport.setOnClickListener(this); // findReport = (ImageView) findViewById(R.id.iv_mianfei_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); } @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); // 精彩报告页 } 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);*/ return; } 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!=null){ 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(); } }