package com.hupu.games.adapter; import java.util.ArrayList; import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.hupu.games.HuPuApp; import com.hupu.games.R; import com.hupu.games.data.LiveEntity; import com.hupu.games.data.TeamValueEntity; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; public class LiveDataListAdapter extends BaseAdapter { private ArrayList<LiveEntity> mLiveList; private LayoutInflater mInflater; // private String strHomeName; // private String strAwayName; private int i_homeColor; private int i_awayColor; private int i_bg_gray; private int i_txt_gray; OnClickListener click; public LiveDataListAdapter(Context context, int homeId, int awayId, OnClickListener c) { mInflater = LayoutInflater.from(context); TeamValueEntity entity = HuPuApp.getTeamData(homeId); // strHomeName = entity.str_name; i_homeColor = entity.i_color; entity = HuPuApp.getTeamData(awayId); // strAwayName =entity.str_name; i_awayColor = entity.i_color; // System.out.println("strHomeName="+strHomeName // +"strAwayName="+strAwayName); Resources res = context.getResources(); i_bg_gray = res.getColor(R.color.res_cor6); i_txt_gray = res.getColor(R.color.txt_status); click = c; } @Override public int getCount() { if (mLiveList == null) return 0; return mLiveList.size(); } @Override public LiveEntity getItem(int arg0) { if (mLiveList == null) return null; return mLiveList.get(arg0); } @Override public long getItemId(int arg0) { return 0; } public void setData(ArrayList<LiveEntity> gameList) { mLiveList = gameList; notifyDataSetChanged(); } public ArrayList<LiveEntity> appendData(ArrayList<LiveEntity> gameList) { if (mLiveList == null) mLiveList = new ArrayList<LiveEntity>(); mLiveList.addAll(gameList); notifyDataSetChanged(); return mLiveList; } public ArrayList<LiveEntity> addDataToHead(ArrayList<LiveEntity> gameList) { if (mLiveList == null) mLiveList = new ArrayList<LiveEntity>(); mLiveList.addAll(0, gameList); notifyDataSetChanged(); return mLiveList; } // boolean bShowRate; /**设置是否显示赔率*/ public void setShowRate(boolean b) { // bShowRate =b; } @Override public View getView(int position, View convertView, ViewGroup parent) { // System.out.print("GamesListAdapter getView pos =" + position); LiveEntity entity = mLiveList.get(position); Holder holder = null; if (convertView == null) { // convertView = mInflater.inflate(R.layout.item_live_msg, null); holder = new Holder(); holder.txtTeamName = (TextView) convertView .findViewById(R.id.txt_team); holder.txtTime = (TextView) convertView.findViewById(R.id.txt_time); holder.txtEvent = (TextView) convertView .findViewById(R.id.txt_event); holder.split = convertView.findViewById(R.id.view_split); holder.img = (ImageView) convertView.findViewById(R.id.img_live); holder.casino = convertView.findViewById(R.id.layout_casino); holder.btn1 = (Button) convertView.findViewById(R.id.btn_1); holder.btn2 = (Button) convertView.findViewById(R.id.btn_2); holder.odds = convertView.findViewById(R.id.layout_odds); holder.txtOdds1 = (TextView) convertView .findViewById(R.id.txt_odds1); holder.txtOdds2 = (TextView) convertView .findViewById(R.id.txt_odds2); holder.Info = convertView.findViewById(R.id.layout_casino_info); // holder.txtPeople = (TextView) convertView // .findViewById(R.id.txt_people); holder.txtStatus = (TextView) convertView .findViewById(R.id.txt_status); holder.txtAnswer= (TextView) convertView .findViewById(R.id.txt_answer); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } holder.txtEvent.setTextColor(Color.WHITE); holder.txtAnswer.setVisibility(View.GONE); if (entity.byt_team == 0) { holder.txtTeamName.setVisibility(View.GONE); holder.split.setBackgroundColor(0xff666666); // holder.txtTime.setBackgroundColor(i_bg_gray); // holder.txtEvent.setTextColor(i_txt_gray); if (entity.type == 1) { // 问答题 holder.casino.setVisibility(View.VISIBLE); holder.Info.setVisibility(View.VISIBLE); if(entity.is_show_odds && entity.answers[0].odds!=null) { //需要显示赔率 holder.odds.setVisibility(View.VISIBLE); holder.txtOdds1.setText("1赔" + entity.answers[0].odds); holder.txtOdds2.setText("1赔" + entity.answers[1].odds); } else holder.odds.setVisibility(View.GONE);//隐藏赔率行 holder.btn1.setText(entity.answers[0].title); holder.btn1.setOnClickListener(click); holder.btn1.setTag(entity.answers[0]); holder.btn2.setText(entity.answers[1].title); holder.btn2.setOnClickListener(click); holder.btn2.setTag(entity.answers[1]); if (entity.quizStatus == 1) { // 竞猜进行中 holder.btn1.setBackgroundResource(R.drawable.quiz_btn_selector); holder.btn2.setBackgroundResource(R.drawable.quiz_btn_selector); holder.btn1.setVisibility(View.VISIBLE); holder.btn2.setVisibility(View.VISIBLE); if(entity.isCasino>0) { //已经参加过竞猜,只需显示右侧按钮 holder.btn1.setVisibility(View.INVISIBLE); holder.txtOdds1.setVisibility(View.INVISIBLE); holder.btn2.setText("追加投入"); if(entity.isCasino ==1) holder.btn2.setTag(entity.answers[0]); } else holder.txtOdds1.setVisibility(View.VISIBLE); // holder.txtPeople.setVisibility(View.INVISIBLE); holder.txtStatus.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_live_man , 0, 0, 0); holder.txtStatus.setText("" + entity.userCount+"人已参与"); } else { // 关闭或结束时不显示竞猜人数和竞猜按钮 // holder.txtPeople.setVisibility(View.INVISIBLE); holder.odds.setVisibility(View.GONE); holder.casino.setVisibility(View.GONE); if(entity.quizStatus ==3 && entity.rightId>0) { //已开奖需要显示竞猜答案 holder.txtAnswer.setVisibility(View.VISIBLE); holder.txtAnswer.setText("开奖:"+entity.answers[entity.rightId-1].title); } holder.txtStatus.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_live_time , 0, 0, 0); holder.txtStatus.setText(entity.quizStr); } if(entity.isCasino>0 && ( entity.quizStatus !=3 && entity.quizStatus !=6 )) { //未开奖时只要用户参与过,显示用户自己选择的答案 holder.txtAnswer.setVisibility(View.VISIBLE); if(entity.isCasino ==1) holder.txtAnswer.setText("我猜:"+entity.answers[0].title); else if(entity.isCasino ==2) holder.txtAnswer.setText("我猜:"+entity.answers[1].title); } } else { holder.casino.setVisibility(View.GONE); holder.Info.setVisibility(View.GONE); holder.odds.setVisibility(View.GONE); } } else { holder.casino.setVisibility(View.GONE); holder.Info.setVisibility(View.GONE); holder.odds.setVisibility(View.GONE); holder.txtTeamName.setVisibility(View.VISIBLE); if (entity.byt_team == 1) { // holder.txtTeamName.setText(strHomeName); holder.txtTeamName.setText("主"); holder.split.setBackgroundColor(i_homeColor); } else { // holder.txtTeamName.setText(strAwayName); holder.txtTeamName.setText("客"); holder.split.setBackgroundColor(i_awayColor); } //holder.txtTime.setBackgroundColor(Color.BLACK); } holder.txtTime.setText(entity.i_endTime); // 变化文字颜色 if (entity.i_color != -1) holder.txtEvent.setTextColor(entity.i_color); // Log.d("str_img_thumb", "img url="+entity.str_img_thumb); // 显示图片 if (entity.str_img_thumb != null) { holder.img.setVisibility(View.VISIBLE); UrlImageViewHelper.setUrlDrawable(holder.img, entity.str_img_thumb,R.drawable.live_default); holder.img.setClickable(true); holder.img.setTag(entity.str_img); holder.img.setOnClickListener(click); } else holder.img.setVisibility(View.GONE); // 文字跳转 if (entity.type == 1) { //竞猜 holder.txtEvent.setTextColor(0xfff9ff50); if(entity.max_bet>0) holder.txtEvent.setText(entity.content+"(最多投入"+entity.max_bet+"金豆)"); else holder.txtEvent.setText(entity.content); holder.txtEvent.setClickable(false); } else { holder.txtEvent.setClickable(true); holder.txtEvent.setOnClickListener(click); holder.txtEvent.setTag(entity.str_link); holder.txtEvent.setText(entity.str_event); } return convertView; } static class Holder { // 第一列 TextView txtTeamName; TextView txtTime; TextView txtEvent; TextView txtAnswer; View split; ImageView img; View casino; Button btn1;//下注按钮 Button btn2; View odds; TextView txtOdds1;//赔率 TextView txtOdds2; View Info;//竞猜相关信息 // TextView txtPeople; TextView txtStatus; } }