package com.hyrt.cei.ui.econdata;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
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.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.hyrt.ceiphone.ContainerActivity;
import com.hyrt.ceiphone.R;
import com.hyrt.cei.adapter.EconAdapter;
import com.hyrt.cei.adapter.EconImageAdapter;
import com.hyrt.cei.application.CeiApplication;
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.New;
import com.hyrt.cei.vo.funId;
import com.hyrt.cei.webservice.service.Service;
import com.hyrt.ceiphone.common.HomePageDZB;
public class EconDataMain extends ContainerActivity implements OnClickListener {
public static String MODEL_NAME;
public static ColumnEntry allColBg;
ImageView econ_zzjk_icon, econ_data_sousuo_icon, sszk_icon, zjzs_icon,
fxyc_icon, zbsc_icon;
ImageView img1, img2, img3, img4, img5;
TextView tv_title;
TextView tv_left,tv_center,tv_right;
private Context context = EconDataMain.this;
private LinearLayout prolayout;
private ImageView[] imageviews;
private Gallery goodData;
private CeiApplication application;
private List<New> goodNewsList, newNewsList;
private ColumnEntry columnEntry;// 业务类实体
private String bgId;// 精彩数据的业务ID,图片类新闻的ID
private StringBuilder colIDs;// GridView业务中的ID
private Handler handler = new Handler();
private Runnable runnable;
private int zhibcont;
private boolean flage;
private EconImageAdapter goodAdapter;
private ListView econ_data_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.econ_data_main);
MODEL_NAME = ((CeiApplication) getApplication()).nowStart;// 获取当前业务名称。
application = (CeiApplication) getApplication();
columnEntry = ((CeiApplication) getApplication()).columnEntry;
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
System.out.println("设备号" + tm.getDeviceId());
initView();
// prolayout.setVisibility(View.INVISIBLE);
initData();
}
// 初始化
private void initView() {
// 加载progressbar按钮
// prolayout = (LinearLayout) findViewById(R.id.econ_data_pro);
// 中经智库图标
tv_left = (TextView) findViewById(R.id.econ_main_top_icon);
tv_center=(TextView)findViewById(R.id.econ_main_top_img);
tv_center.setText(MODEL_NAME);
tv_left.setOnClickListener(this);
// 搜索图标
tv_right = (TextView) findViewById(R.id.econ_main_top_img2);
tv_right.setOnClickListener(this);
// 数字快讯
sszk_icon = (ImageView) findViewById(R.id.econ_main_botton_2);
sszk_icon.setOnClickListener(this);
// 中经指数
zjzs_icon = (ImageView) findViewById(R.id.econ_main_botton_3);
zjzs_icon.setOnClickListener(this);
// 分析预测
fxyc_icon = (ImageView) findViewById(R.id.econ_main_botton_4);
fxyc_icon.setOnClickListener(this);
// 指标速查
zbsc_icon = (ImageView) findViewById(R.id.econ_main_botton_5);
zbsc_icon.setOnClickListener(this);
// imageview 点图标
img1 = (ImageView) findViewById(R.id.econ_main_button1);
img2 = (ImageView) findViewById(R.id.econ_main_button2);
img3 = (ImageView) findViewById(R.id.econ_main_button3);
img4 = (ImageView) findViewById(R.id.econ_main_button4);
img5 = (ImageView) findViewById(R.id.econ_main_button5);
// galler新闻标题
tv_title = (TextView) findViewById(R.id.econ_main_lin_title_text);
// 改变图片的imageviw数组
imageviews = new ImageView[] { img1, img2, img3, img4, img5 };
// gallery
goodData = (Gallery) findViewById(R.id.econ_main_grid);
// listview
econ_data_list = (ListView) findViewById(R.id.econ_data_pro);
}
private void initData() {
System.out.println("initData");
// gallery中的新闻实体
goodNewsList = new ArrayList<New>();
newNewsList = new ArrayList<New>();
// 根据业务ID查询业务里面的数据,精彩数据对应图片中的新闻
// 根据业务ID查询业务里面的数据
allColBg = columnEntry.getColByName(MODEL_NAME);
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) {
String forId = columnEntry.getId();
if (this.columnEntry.getEntryChildsForParent(forId).size() != 0
&& this.columnEntry.getEntryChildsForParent(forId) != null) {
List<ColumnEntry> childCols = this.columnEntry
.getEntryChildsForParent(forId);
for (ColumnEntry columnEntry2 : childCols) {
colIDs.append(columnEntry2.getId() + ",");
}
} else {
if (columnEntry.getName().equals("精彩数据")) {
bgId = columnEntry.getId();
}
colIDs.append(forId + ",");
}
}
}
/*ColumnEntry colBg = columnEntry.getColByName("精彩数据");
if (colBg != null) {
// 业务ID
bgId = colBg.getId();
}
// listview中经济数据业务实体
ColumnEntry allColBg = columnEntry.getColByName(MODEL_NAME);
if (allColBg != null && allColBg.getId() != null
&& !allColBg.getId().equals("")) {
// 经济数据的ID
String allBgId = allColBg.getId();
// 经济数据中listview中的子业务业务ID
colIDs = new StringBuilder();
// 获得经济数据下的所有业务
List<ColumnEntry> allCol = columnEntry
.getEntryChildsForParent(allBgId);
// 遍历所有业务
for (ColumnEntry columnEntry : allCol) {
// 获取某一个业务的ID,例如分析预测等,forID经济数据下子业务ID
String forId = columnEntry.getId();
// 判断是否有子业务
if (this.columnEntry.getEntryChildsForParent(forId).size() != 0
&& this.columnEntry.getEntryChildsForParent(forId) != null) {
// 有子业务
List<ColumnEntry> childCols = this.columnEntry
.getEntryChildsForParent(forId);
for (ColumnEntry columnEntry2 : childCols) {
colIDs.append(columnEntry2.getId() + ",");
}
} else {
colIDs.append(forId + ",");
}
}
}*/
new Thread() {
@Override
public void run() {
try {
// 判断是否联网
if (((CeiApplication) EconDataMain.this.getApplication())
.isNet()) {
// 精彩数据的业务ID
if (bgId != null && !bgId.equals("")) {
System.out.println("ceiphone news bgId" + bgId);
// 通过图片类新闻的ID获取对应新闻
String news = Service.querydbsImage(bgId);
System.out.println("ceiphone news " + news);// 得到的是(newsGroup)五条新闻信息
// 解析到集合中
goodNewsList = XmlUtil.getNews(news);
// 判断集合是否为空
if (goodNewsList.isEmpty()
|| goodNewsList.size() < 5) {
// 如果为空
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
}
// 把新闻写到本地文件中
WriteOrRead.write(news, MyTools.nativeData,
"goodEcon.xml");
// GridView中的新闻
if (colIDs != null && !colIDs.toString().equals("")) {
// 通过colID生成新闻的字符串
System.out.println("colId" + colIDs);
String newNews = Service.querydbsList(colIDs
.toString());
newNewsList = XmlUtil.getNews(newNews);
WriteOrRead.write(newNews, MyTools.nativeData,
"newsEcon.xml");
}
// 查询购买的经济数据
String buyEcon = Service.queryBuyDbNews(columnEntry
.getUserId());
WriteOrRead.write(buyEcon, MyTools.nativeData,
"buyEcon.xml");
// 清空集合中的数据
application.buyEconData.clear();
// 把购买的数据加入集合中
application.buyEconData.addAll(XmlUtil
.queryBuyNews(buyEcon));
}
} else {
// 离线,读取本地保存细嫩
String news = WriteOrRead.read(MyTools.nativeData,
"goodEcon.xml");
if (news != null && !news.equals("")) {
goodNewsList = XmlUtil.getNews(news);
}
if (goodNewsList.isEmpty() || goodNewsList.size() < 5) {
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
}
String newsEcon = WriteOrRead.read(MyTools.nativeData,
"newsEcon.xml");
if (newsEcon != null && !newsEcon.equals("")) {
newNewsList = XmlUtil.getNews(newsEcon);
}
// GridView中存放的是购买的新闻
String buyEcon = WriteOrRead.read(MyTools.nativeData,
"buyEcon.xml");
if (buyEcon != null && !buyEcon.equals("")) {
application.buyEconData.clear();
application.buyEconData.addAll(XmlUtil
.queryBuyNews(buyEcon));
}
}
if (handler != null) {
runnable = new Runnable() {
@Override
public void run() {
// 在线程中进行与图片滑动有关的操作,每隔几秒图片自动切换
dosomeThing();
// zhibcont++;
// handler.postDelayed(this, 5000);
flage = true;
System.out.println("不进行自动切换");
}
};
handler.postDelayed(runnable, 1000);
}
} catch (Exception e) {
}
super.run();
}
}.start();
}
private void dosomeThing() {
if (zhibcont == 0) {
// goodNewList:图片新闻 goodData:gallery
goodAdapter = new EconImageAdapter(EconDataMain.this, goodNewsList,
goodData, imageviews);
goodData.setAdapter(goodAdapter);
/*
* long m = Integer.MAX_VALUE / 2 - 3; System.out.println("m:"+m);
*/
goodData.setSelection(Integer.MAX_VALUE / 2 - 3);
// Gallery的选择事件
goodData.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
New info = goodNewsList.get(arg2 % 5);
change(arg2 % 5);
// Gallery中的新闻标题
if (info.getTitle() != null) {
tv_title.setText(goodNewsList.get(arg2 % 5).getTitle()
.length() > 10 ? goodNewsList.get(arg2 % 5)
.getTitle().substring(0, 9)
+ "..." : goodNewsList.get(arg2 % 5).getTitle());
} else {
tv_title.setText("");
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
// Gallery的点击事件
goodData.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// 取得某一条新闻的实体
New oneNew = goodNewsList.get(arg2 % 5);
// 判断此信息的ID
if (oneNew.getId() != null) {
if (isHasfunID(bgId) || oneNew.getIsfree().equals("1")) {
Intent intent = new Intent(EconDataMain.this,
EconDataContent.class);
if (oneNew != null) {
intent.putExtra("id", oneNew.getId());
}
startActivity(intent);
if (application.activitys
.contains(EconDataContent.class)) {
application.activitys
.remove(EconDataContent.class);
application.activitys
.add(EconDataContent.class);
} else {
application.activitys
.add(EconDataContent.class);
}
} else {
// 栏目没有购买
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "未购买该栏目");
}
}
}
});
imageviews[0]
.setBackgroundResource(R.drawable.econ_data_img_point0);
// --------------------------------------------------------------------------------------------------------------------------------------
// listview新闻
System.out.println("经济主页listview");
System.out.println("经济主页s" + newNewsList);
econ_data_list.setAdapter(new EconAdapter(EconDataMain.this,
newNewsList));
System.out.println("经济主页点击监听");
// 执行跳转,以及判断是否已经购买
econ_data_list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
System.out.println("经济主页listviwe新闻");
// 点击的新闻
New oneNew = newNewsList.get(arg2);
Class<?> clas = null;
String otherId = "";
String nowID="";
if (oneNew.getFunname().equals("精彩数据")
|| oneNew.getFunname().equals("指标查询")) {
if (oneNew.getFunname().equals("精彩数据")) {
clas = EconDataContent.class;
otherId = columnEntry.getColByName("精彩数据").getId();
} else if (oneNew.getFunname().equals("指标查询")) {
clas = EconZBQueryActivity.class;
otherId = columnEntry.getColByName("指标查询").getId();
}
} else {
String parentID = columnEntry.getColByName(
oneNew.getFunname()).getParentId();
String GrandParentId=columnEntry.getColByName(MODEL_NAME).getId();
nowID=columnEntry.getColByName(
oneNew.getFunname(),GrandParentId).getId();
if (columnEntry.getFunNameByID(parentID).equals("分析预测")) {
clas = EconFXDataActivity.class;
otherId = columnEntry.getColByName("分析预测").getId();
} else if (columnEntry.getFunNameByID(parentID).equals(
"数字快讯")) {
clas = EconDateNumberActivity.class;
otherId = columnEntry.getColByName("数字快讯").getId();
} else if (columnEntry.getFunNameByID(parentID).equals(
"中经指数")) {
clas = EconZZDataActivity.class;
otherId = columnEntry.getColByName("中经指数").getId();
} else {
MyTools.exitShow(EconDataMain.this,
findViewById(R.id.econ_main_top),
"后台业务名称不匹配!");
return;
}
}
// 判断是否免费,1代表免费
if (isHasfunID(otherId) ||isHasfunID(nowID)|| oneNew.getIsfree().equals("1")) {
if (clas == null) {
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "后台业务名称不匹配!");
return;
}
Intent intent = new Intent(EconDataMain.this,
EconDataContent.class);
intent.putExtra("id", oneNew.getId());
startActivity(intent);
if (application.activitys.contains(clas)) {
application.activitys.remove(clas);
application.activitys.add(clas);
} else {
application.activitys.add(clas);
}
} else {
// 栏目没有购买
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
});
// prolayout.setVisibility(View.GONE);
}
/*
* if (goodNewsList.size() > 1) { // 设置gallery所选择的图片
* goodData.setSelection(zhibcont % 5); }
*/
};
// 改变图片旋转
private void change(int num) {
for (int i = 0; i < imageviews.length; i++) {
if (i == num) {
imageviews[i]
.setBackgroundResource(R.drawable.read_report_index_select);
} else {
imageviews[i].setBackgroundResource(R.drawable.home_img_ratio);
}
}
}
// 是否付费
private boolean isHasfunID(String funid) {
for (funId id : application.buyEconData) {
if (funid.equals(id.getFunid())) {
return true;
}
}
return false;
}
@Override
public void onClick(View v) {
if (v == tv_left) {
// 中经网主页
Intent intent = new Intent(EconDataMain.this, HomePageDZB.class);
startActivity(intent);
} else if (v == tv_right) {
// 刷新
Intent intent = new Intent(EconDataMain.this,
EconDataSearchActivity.class);
startActivity(intent);
} else if (v == sszk_icon) {
// 数字快讯
Intent intent = new Intent(EconDataMain.this,
EconDateNumberActivity.class);
startActivity(intent);
} else if (v == zjzs_icon) {
// 中经指数
Intent intent = new Intent(EconDataMain.this,
EconZZDataActivity.class);
startActivity(intent);
} else if (v == fxyc_icon) {
// 分析预测
Intent intent = new Intent(EconDataMain.this,
EconFXDataActivity.class);
startActivity(intent);
} else if (v == zbsc_icon) {
// 指标速查
Intent intent = new Intent(EconDataMain.this,
EconZBQueryActivity.class);
startActivity(intent);
}
}
}