package com.hupu.games.adapter; import java.util.LinkedList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.common.HupuLog; import com.hupu.games.data.LineupEntity; import com.hupu.games.view.HupuSectionedBaseAdapter; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; /** * 比赛统计数据 * */ public class FootballLineupListAdapter extends HupuSectionedBaseAdapter { private LinkedList<LinkedList<LineupEntity>> mListData; private LinkedList<LineupEntity> mDebut; private LinkedList<LineupEntity> mBench; private LinkedList<LineupEntity> mCoach; private LayoutInflater mInflater; private String debutType; public FootballLineupListAdapter(Context context) { mInflater = LayoutInflater.from(context); } public void setData(LinkedList<LineupEntity> data,String type) { debutType = type; if (mListData!=null) { mListData.remove(); } if(data!=null){ mListData = new LinkedList<LinkedList<LineupEntity>>(); mDebut = new LinkedList<LineupEntity>(); mBench = new LinkedList<LineupEntity>(); mCoach = new LinkedList<LineupEntity>(); for (LineupEntity entity:data) { if (entity.type == 1) //首发 mDebut.add(entity); if (entity.type == 2) //替补 mBench.add(entity); if (entity.type == 3) //教练 mCoach.add(entity); } if (mDebut.size() > 0) mListData.add(mDebut); if (mBench.size() > 0) mListData.add(mBench); if (mCoach.size() > 0) mListData.add(mCoach); } else mListData = null; } @Override public LineupEntity getItem(int section, int position) { // TODO Auto-generated method stub if (section == -1 || position == -1) return null; if (mListData != null) { return mListData.get(section).get(position); }else return null; } public LineupEntity getItemAt(int pos) { if (mListData != null) { int section = getSectionForPosition(pos); int child = getPositionInSectionForPosition(pos); return getItem(section, child); } return null; } @Override public long getItemId(int section, int position) { // TODO Auto-generated method stub return 0; } @Override public int getSectionCount() { // TODO Auto-generated method stub if (mListData != null) return mListData.size(); return 0; } @Override public int getCountForSection(int section) { // TODO Auto-generated method stub if (mListData != null) return mListData.get(section).size(); return 0; } @Override public View getItemView(int section, int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Holder item = new Holder(); LineupEntity entity = mListData.get(section).get(position); if (convertView == null) { convertView =initLineup(item); } else { item=(Holder)convertView.getTag(); } item.player_num.setText(entity.type !=3?entity.number+"":""); item.player_name.setText(entity.player_name); item.position.setText(entity.position); UrlImageViewHelper.setUrlDrawable(item.logo, entity.player_header,R.drawable.no_photo); if (entity.eventInfo!=null) { if (entity.eventInfo.size() > 0) { if (entity.eventInfo.size() > 1) { item.up_layout.setVisibility(View.VISIBLE); item.under_layout.setVisibility(View.VISIBLE); if (entity.eventInfo.get(0).type == 1) { item.up_time.setText(entity.eventInfo.get(0).time); item.under_time.setText(entity.eventInfo.get(1).time); }else { item.under_time.setText(entity.eventInfo.get(0).time); item.up_time.setText(entity.eventInfo.get(1).time); } }else { if (entity.eventInfo.get(0).type == 1) { item.up_layout.setVisibility(View.VISIBLE); item.under_layout.setVisibility(View.GONE); item.up_time.setText(entity.eventInfo.get(0).time); }else { item.under_layout.setVisibility(View.VISIBLE); item.up_layout.setVisibility(View.GONE); item.under_time.setText(entity.eventInfo.get(0).time); } } }else { item.up_layout.setVisibility(View.GONE); item.under_layout.setVisibility(View.GONE); } }else { item.up_layout.setVisibility(View.GONE); item.under_layout.setVisibility(View.GONE); } item.rating_num.setText(entity.rating); if (entity.mark == 0) { item.rating_img.setVisibility(View.INVISIBLE); }else { item.rating_img.setVisibility(View.VISIBLE); item.rating_img.setBackgroundResource(entity.mark == 1?R.drawable.icon_like:R.drawable.icon_dislike); } if (position % 2 == 0) { convertView.setBackgroundResource(R.drawable.bg_lineup_list1_selector); } else { convertView.setBackgroundResource(R.drawable.bg_lineup_list2_selector); } return convertView; } @Override public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { // TODO Auto-generated method stub convertView = mInflater.inflate(R.layout.item_lineup_list_header, null); switch (section) { case 0: ((TextView)convertView.findViewById(R.id.txt_date)).setText("首发( "+debutType + " )"); break; case 1: ((TextView)convertView.findViewById(R.id.txt_date)).setText("替补"); break; case 2: ((TextView)convertView.findViewById(R.id.txt_date)).setText("教练"); break; default: break; } return convertView; } private View initLineup(Holder lineup) { View content = mInflater.inflate(R.layout.item_football_lineup, null, false); lineup.player_num = (TextView) content.findViewById(R.id.player_number); lineup.logo = (ImageView) content.findViewById(R.id.player_logo); lineup.player_name = (TextView) content.findViewById(R.id.player_name); lineup.position = (TextView) content.findViewById(R.id.position); lineup.up_layout = (LinearLayout) content.findViewById(R.id.layout_up); lineup.up_time = (TextView) content.findViewById(R.id.up_time); lineup.under_layout = (LinearLayout) content.findViewById(R.id.layout_under); lineup.under_time = (TextView) content .findViewById(R.id.under_time); lineup.rating_num = (TextView) content.findViewById(R.id.rating_num); lineup.rating_img = (ImageView) content.findViewById(R.id.rating_img); content.setTag(lineup); return content; } class Holder { TextView player_num; ImageView logo; TextView player_name; TextView position; LinearLayout up_layout; TextView up_time; LinearLayout under_layout; TextView under_time; TextView rating_num; ImageView rating_img; } }