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.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Gallery; 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.InfomationGalleryAdapter; 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; import com.hyrt.ceiphone.common.HomePageDZB; public class InformationActivity extends ContainerActivity implements OnClickListener, OnItemClickListener { 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, canRead; private List<funId> funIds; private TextView title; private ColumnEntry columnEntry; private List<ColumnEntry> columnEntries; public static String MODEL_NAME; private static final int LISTVIEW = 1; private static final int GALLERY = 2; private static final int ALREADY_BUY = 3; private ImageView point1, point2, point3, point4, point5; private String jingcaiStrId; private String intentId; private Gallery goodReport; private String loginName; // 资讯列表数据集合 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( InformationActivity.this, R.layout.inf_list_item, news, currentFunctionId); list.setAdapter(adapter); break; } } }; private Handler viewHandler = new Handler() { @Override public void handleMessage(Message msg) { final InfomationGalleryAdapter adapter = new InfomationGalleryAdapter( InformationActivity.this, GalleryDate, goodReport); goodReport.setAdapter(adapter); goodReport.setSelection(Integer.MAX_VALUE/2-3); point1.setBackgroundResource(R.drawable.read_report_index_select); if (GalleryDate.get(0).getTitle() != null) { System.out.println("informa"); title.setText(GalleryDate.get(0).getTitle().length() > 10 ? GalleryDate .get(0).getTitle().substring(0, 9) + "..." : GalleryDate.get(0).getTitle()); } goodReport.setOnItemClickListener(InformationActivity.this); goodReport.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { InfoNew info = (InfoNew) arg0.getAdapter().getItem(arg2); if (info.getTitle() != null) { title.setText(info.getTitle().length() > 10 ? info .getTitle().substring(0, 9) + "..." : info .getTitle()); } else { title.setText(""); } if (arg2 % 5 == 0) { point1.setBackgroundResource(R.drawable.read_report_index_select); point2.setBackgroundResource(R.drawable.home_img_ratio); point3.setBackgroundResource(R.drawable.home_img_ratio); point4.setBackgroundResource(R.drawable.home_img_ratio); point5.setBackgroundResource(R.drawable.home_img_ratio); } if (arg2 % 5 == 1) { point2.setBackgroundResource(R.drawable.read_report_index_select); point1.setBackgroundResource(R.drawable.home_img_ratio); point3.setBackgroundResource(R.drawable.home_img_ratio); point4.setBackgroundResource(R.drawable.home_img_ratio); point5.setBackgroundResource(R.drawable.home_img_ratio); } if (arg2 % 5 == 2) { point3.setBackgroundResource(R.drawable.read_report_index_select); point1.setBackgroundResource(R.drawable.home_img_ratio); point2.setBackgroundResource(R.drawable.home_img_ratio); point4.setBackgroundResource(R.drawable.home_img_ratio); point5.setBackgroundResource(R.drawable.home_img_ratio); } if (arg2 % 5 == 3) { point4.setBackgroundResource(R.drawable.read_report_index_select); point1.setBackgroundResource(R.drawable.home_img_ratio); point3.setBackgroundResource(R.drawable.home_img_ratio); point2.setBackgroundResource(R.drawable.home_img_ratio); point5.setBackgroundResource(R.drawable.home_img_ratio); } if (arg2 % 5 == 4) { point5.setBackgroundResource(R.drawable.read_report_index_select); point1.setBackgroundResource(R.drawable.home_img_ratio); point3.setBackgroundResource(R.drawable.home_img_ratio); point4.setBackgroundResource(R.drawable.home_img_ratio); point2.setBackgroundResource(R.drawable.home_img_ratio); } System.out.println("长度" + GalleryDate.size()); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.infomation_main); MODEL_NAME=((CeiApplication)getApplication()).nowStart;//获取当前业务名称。 ((TextView)findViewById(R.id.zjzx_title)).setText(MODEL_NAME); init(); initData(); } private void init() { SharedPreferences settings = getSharedPreferences("loginInfo", Activity.MODE_PRIVATE); loginName = settings.getString("LOGINNAME", ""); alreadyBuy = false; findViewById(R.id.imageView1).setOnClickListener(this); findViewById(R.id.zjzx_search).setOnClickListener(this); goodReport = (Gallery) findViewById(R.id.read_report_main_ga); title = (TextView) findViewById(R.id.read_report_title); point1 = (ImageView) findViewById(R.id.read_report_point1); point2 = (ImageView) findViewById(R.id.read_report_point2); point3 = (ImageView) findViewById(R.id.read_report_point3); point4 = (ImageView) findViewById(R.id.read_report_point4); point5 = (ImageView) findViewById(R.id.read_report_point5); gGridView = (GGridView) findViewById(R.id.zjzx_info_gridview); gGridView.setOnItemClickListener(this); list = (ListView) findViewById(R.id.read_report_main_lv); list.setOnItemClickListener(InformationActivity.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()); if(columnEntries.size()==0) return; GridViewAdapter gridViewAdapter = new GridViewAdapter(this, columnEntries); gGridView.setAdapter(gridViewAdapter); for (int i = 0; i < columnEntries.size(); i++) { if (columnEntries.get(i).getName().endsWith("精彩推荐")) { jingcaiStrId = columnEntries.get(i).getId(); } } if (((CeiApplication) InformationActivity.this.getApplication()) .isNet()) { new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < columnEntries.size(); i++) { String result = Service.queryNewsByFunctionId( columnEntries.get(i).getId(), "40", columnEntry.getUserId()); String xmlName = "zjzx" + columnEntries.get(i).getId() + ".xml"; WriteOrRead.write(result, MyTools.nativeData, xmlName); } String gallaryresult = Service.queryNewsByFunctionId( jingcaiStrId, "5", columnEntry.getUserId()); WriteOrRead.write(gallaryresult, MyTools.nativeData, "zjzxgallaryXmlName.xml"); String yigoumai = Service.queryBuyNews(columnEntry .getUserId()); WriteOrRead.write(yigoumai, MyTools.nativeData, "yigoumaiXmlName.xml"); } }).start(); } String firstID = columnEntries.get(0).getId(); refreshListData(columnEntry.getUserId(), ALREADY_BUY,true); refreshListData(jingcaiStrId, GALLERY,true); refreshListData(firstID, LISTVIEW,true); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { switch (arg0.getId()) { case R.id.zjzx_info_gridview: String currentFunctionId = columnEntries.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(InformationActivity.this, InformationReadActivity.class); if (new2.getIsfree().equals("1")) { InformationActivity.this.startActivity(intent); } else { MyTools.exitShow(InformationActivity.this, getWindow() .getDecorView(), "未购买该栏目!"); } break; case R.id.read_report_main_ga: if (GalleryDate.size() >= 5) { InfoNew newa = GalleryDate.get(arg2 % 5); String intentId = newa.getId(); if (intentId != null) { intent = new Intent(); intent.putExtra("extra", intentId); intent.putExtra("functionId", newa.getFunctionId()); intent.setClass(InformationActivity.this, InformationReadActivity.class); if (newa.getIsfree().endsWith("1")) { InformationActivity.this.startActivity(intent); } else { for (int i = 0; i < funIds.size(); i++) { if (funIds.get(i).getFunid() .endsWith(newa.getFunctionId())) { canRead = true; break; } else { canRead = false; } } if (canRead) { InformationActivity.this.startActivity(intent); } else { MyTools.exitShow(InformationActivity.this, getWindow().getDecorView(), "未购买该栏目!"); } } } } break; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.imageView1: InformationActivity.this.finish(); intent = new Intent(InformationActivity.this, HomePageDZB.class); startActivity(intent); break; case R.id.zjzx_search: intent = new Intent(InformationActivity.this, InfoSearchActivity.class); startActivity(intent); break; case R.id.zjzx_botton_1: intent = new Intent(InformationActivity.this, InformationOne.class); startActivity(intent); break; case R.id.zjzx_botton_2: intent = new Intent(InformationActivity.this, InformationTwo.class); startActivity(intent); break; case R.id.zjzx_botton_3: intent = new Intent(InformationActivity.this, InformationThree.class); startActivity(intent); break; case R.id.zjzx_botton_4: if (!loginName.equals("")) { intent = new Intent(InformationActivity.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 Handler().post((new Runnable() { @Override public void run() { String result = ""; switch (operationId) { case LISTVIEW: if (((CeiApplication) InformationActivity.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); } if (!funIds.isEmpty()) { 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 GALLERY: if (((CeiApplication) InformationActivity.this .getApplication()).isNet()) { String leftTopResult = Service.queryNewsByFunctionId( jingcaiStrId, "5", columnEntry.getUserId()); XmlUtil.getNewsList(leftTopResult, GalleryDate); if (GalleryDate.size() < 5) { GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); } } else { String galNameresult = WriteOrRead.read( MyTools.nativeData, "zjzxgallaryXmlName.xml"); news.clear(); XmlUtil.getNewsList(galNameresult, GalleryDate); if (GalleryDate.size() < 5) { GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); } } message = viewHandler.obtainMessage(); message.arg1 = GALLERY; viewHandler.sendMessage(message); break; case ALREADY_BUY: if (((CeiApplication) InformationActivity.this .getApplication()).isNet()) { funIds = new ArrayList<funId>(); result = Service.queryBuyNews(functionId); try { funIds = XmlUtil.queryBuyNews(result); } catch (Exception e) { e.printStackTrace(); } } else { String galNameresult = WriteOrRead.read( MyTools.nativeData, "yigoumaiXmlName.xml"); news.clear(); try { funIds = XmlUtil.queryBuyNews(galNameresult); } catch (Exception e) { e.printStackTrace(); } } break; } } })); } private void refreshListData(final String functionId, final int operationId,boolean isThread) { news.clear(); new Thread((new Runnable() { @Override public void run() { String result = ""; switch (operationId) { case LISTVIEW: if (((CeiApplication) InformationActivity.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); } if(!funIds.isEmpty()){ 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 GALLERY: if (((CeiApplication) InformationActivity.this .getApplication()).isNet()) { String leftTopResult = Service.queryNewsByFunctionId( jingcaiStrId, "5", columnEntry.getUserId()); XmlUtil.getNewsList(leftTopResult, GalleryDate); if (GalleryDate.size() < 5) { GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); } } else { String galNameresult = WriteOrRead.read( MyTools.nativeData, "zjzxgallaryXmlName.xml"); news.clear(); XmlUtil.getNewsList(galNameresult, GalleryDate); if (GalleryDate.size() < 5) { GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); GalleryDate.add(new InfoNew()); } } message = viewHandler.obtainMessage(); message.arg1 = GALLERY; viewHandler.sendMessage(message); break; case ALREADY_BUY: if (((CeiApplication) InformationActivity.this .getApplication()).isNet()) { funIds = new ArrayList<funId>(); result = Service.queryBuyNews(functionId); try { funIds = XmlUtil.queryBuyNews(result); } catch (Exception e) { e.printStackTrace(); } } else { String galNameresult = WriteOrRead.read( MyTools.nativeData, "yigoumaiXmlName.xml"); news.clear(); try { funIds = XmlUtil.queryBuyNews(galNameresult); } catch (Exception e) { e.printStackTrace(); } } break; } } })).start(); } }