package com.seal.ui.adapter;
import java.util.ArrayList;
import java.util.HashMap;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseExpandableListAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.seal.R;
import com.seal.ui.managers.UIManager;
public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
public String[] group = { "门户资讯", "视频", "购物", "生活" };
public String[][] gridViewChild = { { "腾讯", "搜狐", "新浪", "网易", "凤凰" }, { "优酷", "爱奇艺", "乐视", "PPTV" }, { "淘宝", "天猫", "京东", "唯品会", "1号店" },
{ "58同城", "赶集网", "大众点评", "百姓网" } };
public String[][] gridViewSite = { { "http://3g.qq.com", "http://m.souhu.com", "http://sina.cn", "http://3g.163.com", "http://i.ifeng.com" },
{ "http://m.youku.com", "http://m.iqiyi.com", "http://m.letv.com", "http://m.pptv.com" },
{ "http://m.taobao.com", "http://m.tmall.com", "http://m.jd.com", "http://m.vip.com", "http://m.yhd.com" },
{ "http://m.58.com", "http://wap.ganji.com", "http://wap.dianping.com", "http://shanghai.baixing.com" } };
String[][] child = { { "" }, { "" }, { "" }, { "" } };
LayoutInflater mInflater;
Context context;
UIManager mUIManager;
public ExpandableListViewAdapter(Context context, UIManager mUIManager) {
// TODO Auto-generated constructor stub
mInflater = LayoutInflater.from(context);
this.mUIManager = mUIManager;
this.context = context;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return child[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
mViewChild = new ViewChild();
convertView = mInflater.inflate(R.layout.channel_expandablelistview_item, null);
mViewChild.gridView = (GridView) convertView.findViewById(R.id.channel_item_child_gridView);
convertView.setTag(mViewChild);
} else {
mViewChild = (ViewChild) convertView.getTag();
}
SimpleAdapter mSimpleAdapter = new SimpleAdapter(context, setGridViewData(gridViewChild[groupPosition]), R.layout.channel_gridview_item,
new String[] { "channel_gridview_item" }, new int[] { R.id.channel_gridview_item });
mViewChild.gridView.setAdapter(mSimpleAdapter);
mViewChild.gridView.setOnItemClickListener(new GridView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
if (view instanceof TextView) {
if (view instanceof TextView) {
if (mUIManager != null) mUIManager.loadUrl(gridViewSite[groupPosition][position]);
// Log.e("YM", gridViewSite[groupPosition][position]);
}
}
}
});
mViewChild.gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
return convertView;
}
/**
* 设置gridview数据
*
* @param data
* @return
*/
private ArrayList<HashMap<String, Object>> setGridViewData(String[] data) {
ArrayList<HashMap<String, Object>> gridItem = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < data.length; i++) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("channel_gridview_item", data[i]);
gridItem.add(hashMap);
}
return gridItem;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return child[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return group[groupPosition];
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return group.length;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
mViewChild = new ViewChild();
convertView = mInflater.inflate(R.layout.channel_expandablelistview, null);
mViewChild.textView = (TextView) convertView.findViewById(R.id.channel_group_name);
mViewChild.imageView = (ImageView) convertView.findViewById(R.id.channel_imageview_orientation);
convertView.setTag(mViewChild);
} else {
mViewChild = (ViewChild) convertView.getTag();
}
if (isExpanded) {
mViewChild.imageView.setImageResource(R.drawable.channel_expandablelistview_top_icon);
} else {
mViewChild.imageView.setImageResource(R.drawable.channel_expandablelistview_bottom_icon);
}
mViewChild.textView.setText(getGroup(groupPosition).toString());
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
ViewChild mViewChild;
static class ViewChild {
ImageView imageView;
TextView textView;
GridView gridView;
}
}