package com.hyrt.cei.ui.information; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageView; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.hyrt.cei.adapter.InformationAdapter; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.ui.information.adapter.GridViewAdapter; import com.hyrt.cei.ui.information.view.GGridView; 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.InfoNew; import com.hyrt.cei.vo.funId; import com.hyrt.cei.webservice.service.Service; import com.hyrt.ceiphone.ContainerActivity; import com.hyrt.ceiphone.R; public class InformationOne extends ContainerActivity implements OnClickListener, OnItemClickListener { private String loginName; private RelativeLayout rl; // 上部Gallery数据的集合 List<InfoNew> GalleryDate = new ArrayList<InfoNew>(); // 当前查询的业务资讯id private String currentFunctionId; // 横向的菜单 private GGridView gGridView; private ListView list; private Intent intent; private boolean alreadyBuy; public static String MODEL_NAME; private List<funId> funIds; private ColumnEntry columnEntry; private List<ColumnEntry> columnEntries; private List<ColumnEntry> columnEntriesnew; //public static final String MODEL_NAME = "政经资讯"; private static final int LISTVIEW = 1; private static final int ALREADY_BUY = 3; private String intentId; // 资讯列表数据集合 private List<InfoNew> news = new ArrayList<InfoNew>(); private Handler dataHandler = new Handler() { @Override public void dispatchMessage(Message msg) { switch (msg.arg1) { case LISTVIEW: InformationAdapter adapter = new InformationAdapter( InformationOne.this, R.layout.inf_list_item, news, currentFunctionId); list.setAdapter(adapter); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.infomation_one); MODEL_NAME=((CeiApplication)getApplication()).nowStart;//获取当前业务名称。 ((TextView)findViewById(R.id.imageView1)).setText(MODEL_NAME); init(); initData(); } private void init() { SharedPreferences settings = getSharedPreferences("loginInfo", Activity.MODE_PRIVATE); loginName = settings.getString("LOGINNAME", ""); findViewById(R.id.imageView1).setOnClickListener(this); findViewById(R.id.zjzx_search).setOnClickListener(this); alreadyBuy = false; gGridView = (GGridView) findViewById(R.id.zjzx_info_gridview); gGridView.setOnItemClickListener(this); list = (ListView) findViewById(R.id.read_report_main_lv); list.setOnItemClickListener(InformationOne.this); findViewById(R.id.zjzx_botton_1).setOnClickListener(this); findViewById(R.id.zjzx_botton_2).setOnClickListener(this); findViewById(R.id.zjzx_botton_3).setOnClickListener(this); findViewById(R.id.zjzx_botton_4).setOnClickListener(this); }; private void initData() { columnEntry = ((CeiApplication) getApplication()).columnEntry; columnEntries = columnEntry.getEntryChildsForParent(columnEntry .getColByName(InformationActivity.MODEL_NAME).getId()); columnEntriesnew = new ArrayList<ColumnEntry>(); if(columnEntries.size()>=8){ columnEntriesnew.add(columnEntries.get(4)); columnEntriesnew.add(columnEntries.get(5)); columnEntriesnew.add(columnEntries.get(6)); columnEntriesnew.add(columnEntries.get(7)); }else{ for (ColumnEntry columnEntry : columnEntries) { columnEntriesnew.add(columnEntry); } } GridViewAdapter gridViewAdapter = new GridViewAdapter(this, columnEntriesnew); gGridView.setAdapter(gridViewAdapter); String firstID = columnEntriesnew.get(0).getId(); refreshListData(columnEntry.getUserId(), ALREADY_BUY); refreshListData(firstID, LISTVIEW); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { switch (arg0.getId()) { case R.id.zjzx_info_gridview: String currentFunctionId = columnEntriesnew.get(arg2).getId(); refreshListData(currentFunctionId, LISTVIEW); for (int i = 0; i < arg0.getChildCount(); i++) { rl = (RelativeLayout) arg0.getChildAt(i); if (i == arg2) { ((ImageView) rl.getChildAt(0)).setImageResource(R.drawable.phone_study_menu_select); ((TextView) rl.getChildAt(1)).setTextColor(Color.WHITE); } else { ((ImageView) rl.getChildAt(0)).setImageDrawable(null); ((TextView) rl.getChildAt(1)).setTextColor(Color.BLUE); } } break; case R.id.read_report_main_lv: InfoNew new2 = news.get(arg2); intentId = new2.getId(); // 跳转到详细页 intent = new Intent(); intent.putExtra("extra", intentId); intent.putExtra("functionId", new2.getFunctionId()); intent.setClass(InformationOne.this, InformationReadActivity.class); if (new2.getIsfree().equals("1")) { InformationOne.this.startActivity(intent); } else { MyTools.exitShow(InformationOne.this, getWindow() .getDecorView(), "未购买该栏目!"); } break; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.imageView1: InformationOne.this.finish(); intent = new Intent(InformationOne.this, InformationActivity.class); startActivity(intent); break; case R.id.zjzx_search: intent = new Intent(InformationOne.this, InfoSearchActivity.class); startActivity(intent); break; case R.id.zjzx_botton_1: break; case R.id.zjzx_botton_2: intent = new Intent(InformationOne.this, InformationTwo.class); startActivity(intent); break; case R.id.zjzx_botton_3: intent = new Intent(InformationOne.this, InformationThree.class); startActivity(intent); break; case R.id.zjzx_botton_4: if (!loginName.equals("")) { intent = new Intent(InformationOne.this, InformationCollect.class); startActivity(intent); } else { Toast.makeText(this, "请登录后查看!", Toast.LENGTH_SHORT).show(); } break; } } private void refreshListData(final String functionId, final int operationId) { news.clear(); new Thread((new Runnable() { @Override public void run() { String result = ""; switch (operationId) { case LISTVIEW: if (((CeiApplication) InformationOne.this .getApplication()).isNet()) { result = Service.queryNewsByFunctionId(functionId, "40", columnEntry.getUserId()); news.clear(); XmlUtil.getNewsList(result, news); } else { String xmlName = "zjzx" + functionId + ".xml"; String xmlNameresult = WriteOrRead.read( MyTools.nativeData, xmlName); news.clear(); XmlUtil.getNewsList(xmlNameresult, news); } for (int i = 0; i < funIds.size(); i++) { if (funIds.get(i).getFunid().endsWith(functionId)) { alreadyBuy = true; break; } else { alreadyBuy = false; } } if (alreadyBuy) { for (int j = 0; j < news.size(); j++) { news.get(j).setIsfree("1"); } } Message message = dataHandler.obtainMessage(); message.arg1 = LISTVIEW; dataHandler.sendMessage(message); break; case ALREADY_BUY: if (((CeiApplication) InformationOne.this .getApplication()).isNet()) { funIds = new ArrayList<funId>(); result = Service.queryBuyNews(functionId); try { funIds = XmlUtil.queryBuyNews(result); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { String galNameresult = WriteOrRead.read( MyTools.nativeData, "zjzxalreadyBuy.xml"); news.clear(); try { funIds = XmlUtil.queryBuyNews(galNameresult); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } break; } } })).start(); } }