package com.hupu.games.adapter; import java.util.ArrayList; import java.util.LinkedHashMap; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.data.game.basketball.BasketballGameData; import com.hupu.games.data.game.basketball.BasketballResp; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; import com.pyj.common.MyUtility; /** * 篮球赛程列表 * */ public class BasketballListAdapter extends SectionedBaseAdapter { private LinkedHashMap<String, ArrayList<BasketballGameData>> mListGames; private ArrayList<String> mKeys; private LayoutInflater mInflater; private OnClickListener mClick; public BasketballListAdapter(Context context,OnClickListener c) { mInflater = LayoutInflater.from(context); mClick =c; } public void setData(BasketballResp en) { if(en ==null) { mListGames =null; mKeys=null; }else { mListGames =en.mMap; mKeys=en.mKeys; } notifyDataSetChanged(); } private void setSore(TextView tv, int homeScore, int awayScore) { tv.setText(homeScore +"-"+awayScore); } static class Holder { TextView txtHomeName; TextView txtAwayName; ImageView imgHomeLogo; ImageView imgAwayLogo; TextView txtProccess; TextView txtScore; ImageView imgFollow; ImageView imgLive; //View followLayout; } static class Header { TextView txtDate; TextView txtRound; } @Override public BasketballGameData getItem(int section, int position) { if(section ==-1 ||position==-1 ) return null; if(mListGames!= null ) { return mListGames.get(mKeys.get(section)).get(position); } return null; } public BasketballGameData getItemAt(int pos) { if(mListGames!= null ) { int section =getSectionForPosition(pos); int child =getPositionInSectionForPosition(pos); return getItem(section, child); } return null; } @Override public long getItemId(int section, int position) { return 0; } @Override public int getSectionCount() { if(mKeys!=null) return mKeys.size(); else return 0; } @Override public int getCountForSection(int section) { if(mListGames!= null ) { String key =mKeys.get(section); ArrayList<BasketballGameData> datas =mListGames.get(key); // Log.d("head section","section"+section+"; size ="+size ); return datas.size(); } else return 0; } @Override public View getItemView(int section, int position, View convertView, ViewGroup parent) { BasketballGameData entity = getItem(section,position); Holder holder = null; if (convertView == null) { // convertView = mInflater.inflate(R.layout.item_basketball_child, null); holder = new Holder(); holder.txtHomeName = (TextView) convertView .findViewById(R.id.txt_team_left); holder.txtAwayName = (TextView) convertView .findViewById(R.id.txt_team_right); holder.imgHomeLogo = (ImageView) convertView.findViewById(R.id.img_team_left); holder.imgAwayLogo = (ImageView) convertView.findViewById(R.id.img_team_right); holder.txtProccess = (TextView) convertView .findViewById(R.id.txt_proccess); holder.txtScore = (TextView) convertView .findViewById(R.id.txt_score); //holder.followLayout = convertView.findViewById(R.id.layout_follow); holder.imgFollow = (ImageView) convertView.findViewById(R.id.img_follow); holder.imgLive = (ImageView) convertView.findViewById(R.id.img_live); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } holder.txtHomeName.setText(entity.str_home_name); holder.txtAwayName.setText(entity.str_away_name); //写在这里解决 切换时 默认图的问题 可是有些许影响效率 UrlImageViewHelper.setUrlDrawable(holder.imgHomeLogo,entity.home_logo,R.drawable.bg_home_nologo); UrlImageViewHelper.setUrlDrawable(holder.imgAwayLogo,entity.away_logo,R.drawable.bg_home_nologo); if (entity.byt_status == BasketballGameData.STATUS_WAITING ||entity.byt_status == BasketballGameData.STATUS_DELAY ||entity.byt_status == BasketballGameData.STATUS_CANCEL) { // 等待开始 holder.txtScore.setVisibility(View.GONE); holder.imgFollow.setVisibility(View.VISIBLE); //holder.followLayout.setVisibility(View.VISIBLE); if (entity.i_live<1) holder.imgLive.setVisibility(View.INVISIBLE); else if(entity.i_live==1){ holder.imgLive.setVisibility(View.VISIBLE); if (entity.casino == 1) { holder.imgLive.setImageResource(R.drawable.icon_guess_up); } else { holder.imgLive.setImageResource(R.drawable.icon_live_up); } } holder.txtProccess.setText(MyUtility .getStartTime(entity.l_begin_time * 1000)); holder.imgFollow.setTag(entity); holder.imgFollow.setOnClickListener(mClick); if (entity.bFollow == 1) { holder.imgFollow.setImageResource(R.drawable.btn_dated); } else { holder.imgFollow.setImageResource(R.drawable.btn_date); } } else if (entity.byt_status == BasketballGameData.STATUS_START) { // 已经开始 holder.txtScore.setVisibility(View.VISIBLE); //holder.followLayout.setVisibility(View.GONE); holder.imgFollow.setVisibility(View.GONE); if (entity.i_live <1) holder.imgLive.setVisibility(View.INVISIBLE); else if(entity.i_live==1){ holder.imgLive.setVisibility(View.VISIBLE); if (entity.casino == 1) { holder.imgLive.setImageResource(R.drawable.icon_guess_down); } else { holder.imgLive.setImageResource(R.drawable.icon_live_down); } } setSore(holder.txtScore, entity.i_home_score, entity.i_away_score); if (entity.str_process != null) holder.txtProccess.setText(entity.str_process); } else { // 结束 holder.imgFollow.setVisibility(View.GONE); //holder.followLayout.setVisibility(View.GONE); holder.txtScore.setVisibility(View.VISIBLE); holder.imgLive.setVisibility(View.INVISIBLE); setSore(holder.txtScore, entity.i_home_score, entity.i_away_score); if (entity.str_process != null) holder.txtProccess.setText(entity.str_process); } return convertView; } @Override public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { Header header =null; if(convertView==null) { convertView = mInflater.inflate(R.layout.item_cba_header, null); header =new Header(); header.txtDate =(TextView)convertView.findViewById(R.id.txt_date); convertView.setTag(header); } else header=(Header)convertView.getTag(); if(mKeys!=null) { header.txtDate.setText(mKeys.get(section)); } else header.txtDate.setText(""); return convertView; } }