package com.hupu.games.adapter; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.HuPuApp; import com.hupu.games.activity.NBAGameActivity.BoxscoreDatas; import com.hupu.games.data.PlayerEntity; /** * 比赛统计数据 * */ public class GameDataListLandAdapter extends BaseAdapter { private ArrayList<PlayerEntity> mListPLay; private LayoutInflater mInflater; /** 主队球员数量 */ private int i_homeSize; BoxscoreDatas mData; int fgIndex=-1; int tpIndex=-1; int ftIndex=-1; int clrMain; int clrSub; int clrTxt; private boolean bCBA; public GameDataListLandAdapter(Context context) { mInflater = LayoutInflater.from(context); clrMain = context.getResources().getColor(R.color.dark_gray); clrSub = context.getResources().getColor(R.color.res_cor6); clrTxt= context.getResources().getColor(R.color.txt_status); } public GameDataListLandAdapter(Context context,boolean CBA) { mInflater = LayoutInflater.from(context); clrMain = context.getResources().getColor(R.color.dark_gray); clrSub = context.getResources().getColor(R.color.res_cor6); clrTxt= context.getResources().getColor(R.color.txt_status); bCBA =CBA; } public void setData(BoxscoreDatas boxscoreData) { if(i_homeSize ==0) { i_homeSize = boxscoreData.i_homeSize; if(bCBA) { fgIndex =boxscoreData.mListKeys.indexOf("2p"); tpIndex=boxscoreData.mListKeys.indexOf("3p"); ftIndex=boxscoreData.mListKeys.indexOf("ft"); } else { fgIndex =boxscoreData.mListKeys.indexOf("fg"); tpIndex=boxscoreData.mListKeys.indexOf("tp"); ftIndex=boxscoreData.mListKeys.indexOf("ft"); } } mListPLay = boxscoreData.mListPLay; mData =boxscoreData; notifyDataSetChanged(); } class Holder { TextView txtPlayerName; TextView[] datas; } private int mMode; private static int AWAY_MODE = 1; public void changeMode(int mode) { if (mode != mMode) { mMode = mode; notifyDataSetChanged(); } } @Override public int getCount() { if (mListPLay != null) { if (mMode == AWAY_MODE) return mListPLay.size() - i_homeSize+2; return i_homeSize +2; } return 0; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public PlayerEntity getItem(int position) { if (mListPLay == null) return null; return mListPLay.get(position); } public PlayerEntity getItemAt(int position) { if (mListPLay == null) return null; int index = mMode == AWAY_MODE ? i_homeSize : 0; int staticIndex = mMode == AWAY_MODE ? mListPLay.size()- i_homeSize : i_homeSize; if(position<staticIndex) return getItem(index + position) ; return null; } @Override public View getView(int position, View convertView, ViewGroup parent) { int index = mMode == AWAY_MODE ? i_homeSize : 0; int staticIndex = mMode == AWAY_MODE ? mListPLay.size()- i_homeSize : i_homeSize; Holder holder = null; if (convertView == null) { // LinearLayout v = (LinearLayout) mInflater.inflate( R.layout.item_data_child_land, null); convertView = v; holder = new Holder(); holder.txtPlayerName = (TextView) convertView .findViewById(R.id.txt_play_name); holder.datas = new TextView[mData.mListKeys.size()]; LinearLayout.LayoutParams llp = null; String key =null; for (int i = 0; i < holder.datas.length; i++) { holder.datas[i] = (TextView) mInflater .inflate(R.layout.static_child_land, null); key =mData.mListKeys.get(i); if (key.equals("2p") || key.equals("3p") || key.equals("ft") ||key.equals("fg") || key.equals("ft") || key.equals("tp")) { llp = new LinearLayout.LayoutParams(0, -2, 10); } else if (key.equals("mins") ||key.equals("pts") ) llp = new LinearLayout.LayoutParams(0, -2, 7); else llp = new LinearLayout.LayoutParams(0, -2, 5); v.addView(holder.datas[i] , llp); } convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } PlayerEntity entity =null; if(position>4 && position<staticIndex) { // convertView.setBackgroundColor(clrSub); holder.txtPlayerName .setTextColor(clrTxt); if(bCBA) convertView .setBackgroundResource(R.drawable.shape_statistic2); else convertView.setBackgroundResource(R.drawable.bg_statistic_selector2); } else { // convertView.setBackgroundColor(clrMain); holder.txtPlayerName .setTextColor(Color.WHITE); if(bCBA) convertView .setBackgroundResource(R.drawable.shape_statistic1); else convertView.setBackgroundResource(R.drawable.bg_statistic_selector1); } if(position<staticIndex) { entity = getItem(index + position); if(entity.on_court==1) holder.txtPlayerName.setTextColor(0xfff9ff50); holder.txtPlayerName.setText(entity.str_name); for (int i = 0; i < holder.datas.length; i++) { if(entity.on_court==1) { holder.datas[i].setTextColor(0xfff9ff50); } else { holder.datas[i].setTextColor(Color.WHITE); } holder.datas[i].setText(entity.mapDatas.get(mData.mListKeys.get(i))); } } else if(position==staticIndex) { //统计 holder.txtPlayerName.setText("总计"); for (int i = 0; i < holder.datas.length; i++) { holder.datas[i].setTextColor(Color.WHITE); if(mMode == AWAY_MODE) holder.datas[i].setText(mData.mMapAwayTotal.get( mData.mListKeys.get(i) )); else holder.datas[i].setText(mData.mMapHomeTotal.get( mData.mListKeys.get(i) )); } } else { holder.txtPlayerName.setText("命中率"); for (int i = 0; i < holder.datas.length; i++) { holder.datas[i].setTextColor(Color.WHITE); holder.datas[i].setText(""); } //命中率 if(mMode == AWAY_MODE) { holder.datas[fgIndex].setText(mData.str_away_fg); holder.datas[tpIndex].setText(mData.str_away_tp); holder.datas[ftIndex].setText(mData.str_away_ft); } else { holder.datas[fgIndex].setText(mData.str_home_fg); holder.datas[tpIndex].setText(mData.str_home_tp); holder.datas[ftIndex].setText(mData.str_home_ft); } } return convertView; } }