package com.hupu.games.fragment; import android.content.Intent; import android.os.Bundle; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.GridView; import android.widget.ProgressBar; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.activity.FootballCoachInfoActivity; import com.hupu.games.activity.FootballGameActivity; import com.hupu.games.activity.FootballPlayerInfoActivity; import com.hupu.games.activity.PlayerRatingActivity; import com.hupu.games.activity.PlayersRatingActivity; import com.hupu.games.adapter.FootballLineupListAdapter; import com.hupu.games.adapter.LineupMapListAdapter; import com.hupu.games.common.HupuLog; import com.hupu.games.data.FormationEntity; import com.hupu.games.data.LineupEntity; import com.hupu.games.data.TeamLineupResp; import com.hupu.games.view.HupuPinnedHeaderListView; /** * 阵容界面 * */ public class FootballLineupFragment extends BaseBasketballFragment { HupuPinnedHeaderListView mListView; private GridView mHeaderListView; LineupMapListAdapter mHeaderAdapter; FootballLineupListAdapter mAdapter; View header; Button btnHome, btnAway; TeamLineupResp lineupResp; private int teamType = 1; ProgressBar pBar; TextView noData; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_football_lineup, container, false); btnHome = (Button) v.findViewById(R.id.btn_home); btnAway = (Button) v.findViewById(R.id.btn_away); btnHome.setOnClickListener(new Click()); btnAway.setOnClickListener(new Click()); pBar = (ProgressBar) v.findViewById(R.id.probar); noData = (TextView) v.findViewById(R.id.txt_no_data); mListView = (HupuPinnedHeaderListView) v.findViewById(R.id.lineup_list); header = LayoutInflater.from(getActivity()).inflate( R.layout.item_lineup_header, null); mHeaderListView = (GridView) header.findViewById(R.id.list_lineup); mHeaderAdapter = new LineupMapListAdapter(getActivity()); mListView.addHeaderView(header); mAdapter = new FootballLineupListAdapter(getActivity()); pBar.setVisibility(View.VISIBLE); reqNewData(); mHeaderListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub for (FormationEntity pleryInfo : teamType == 1 ? lineupResp.homeEntity.formationList : lineupResp.awayEntity.formationList) { int pos = pleryInfo.coordinateY * 5 + pleryInfo.coordinateX; if (pos == position) { Intent headerIntent; if (pleryInfo.rating_oid != 0) { headerIntent = new Intent(getActivity(), PlayerRatingActivity.class); headerIntent.putExtra("oid", pleryInfo.rating_oid); headerIntent.putExtra("obj_type", 1); } else { headerIntent = new Intent(getActivity(), FootballPlayerInfoActivity.class); } if (pleryInfo.player_id != 0) { headerIntent.putExtra("tag", ((FootballGameActivity) getActivity()) .getTag()); headerIntent.putExtra("pid", pleryInfo.player_id); startActivity(headerIntent); } break; } } } }); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub LineupEntity entity = mAdapter.getItemAt(position - 1); if (entity == null) { return; } else { Intent in; if (entity.rating_oid != 0) { in = new Intent(getActivity(), PlayerRatingActivity.class); in.putExtra("oid", entity.rating_oid); in.putExtra("tag", ((FootballGameActivity) getActivity()).getTag()); in.putExtra("obj_type", entity.type <= 2?1:3); } else { in = new Intent( getActivity(), entity.type == 3 ? FootballCoachInfoActivity.class : FootballPlayerInfoActivity.class); } HupuLog.e("papa", "playerId========="+entity.player_id); if (entity.player_id != 0) { in.putExtra("tag", ((FootballGameActivity) getActivity()).getTag()); in.putExtra("pid", entity.player_id); startActivity(in); } } } }); return v; } private class Click implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub btnAway.setBackgroundResource(R.drawable.btn_rank_type_selector); btnHome.setBackgroundResource(R.drawable.btn_rank_type_selector); switch (v.getId()) { case R.id.btn_home: btnHome.setBackgroundResource(R.drawable.btn_rank_type_bg_down); if (teamType != 1) { teamType = 1; if (lineupResp != null && lineupResp.homeEntity != null && lineupResp.homeEntity.lineupList != null && lineupResp.homeEntity.formationList != null) { mHeaderAdapter.setData( lineupResp.homeEntity.formationList, teamType); mHeaderAdapter.notifyDataSetChanged(); mHeaderListView.setAdapter(mHeaderAdapter); mAdapter = new FootballLineupListAdapter(getActivity()); mAdapter.setData(lineupResp.homeEntity.lineupList, lineupResp.homeEntity.formation_type); mListView.setAdapter(mAdapter); mListView.setVisibility(View.VISIBLE); checkData(); } } break; case R.id.btn_away: btnAway.setBackgroundResource(R.drawable.btn_rank_type_bg_down); if (teamType != 2) { teamType = 2; if (lineupResp != null && lineupResp.awayEntity != null && lineupResp.awayEntity.lineupList != null && lineupResp.awayEntity.formationList != null) { mHeaderAdapter.setData( lineupResp.awayEntity.formationList, teamType); mHeaderAdapter.notifyDataSetChanged(); mHeaderListView.setAdapter(mHeaderAdapter); mAdapter = new FootballLineupListAdapter(getActivity()); mAdapter.setData(lineupResp.awayEntity.lineupList, lineupResp.awayEntity.formation_type); mListView.setAdapter(mAdapter); mListView.setVisibility(View.VISIBLE); checkData(); } } break; default: break; } } } /** 获取最新数据 */ public void reqNewData() { ((FootballGameActivity) getActivity()).getLineupList(); } /** * 检测是否需要线上无阵容文字 */ private void checkData() { if (lineupResp.homeEntity.formationList != null && lineupResp.homeEntity.formationList.size() > 0) { mListView.setVisibility(View.VISIBLE); noData.setVisibility(View.GONE); } else { mListView.setVisibility(View.GONE); noData.setText(Html.fromHtml(lineupResp.preview)); noData.setVisibility(View.VISIBLE); } } public void onReqResponse(Object o, int methodId, int mQid) { pBar.setVisibility(View.GONE); if (o != null) { lineupResp = (TeamLineupResp) o; if (lineupResp.homeEntity != null) { btnAway.setText(lineupResp.awayEntity.name); btnHome.setText(lineupResp.homeEntity.name); teamType = 1; mHeaderAdapter.setData(lineupResp.homeEntity.formationList, teamType); mHeaderListView.setAdapter(mHeaderAdapter); mAdapter.setData(lineupResp.homeEntity.lineupList, lineupResp.homeEntity.formation_type); mListView.setAdapter(mAdapter); checkData(); } } } /* 比赛是否结束 */ boolean bGameEnd; class ListClick implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { if (bGameEnd) { // 比赛结束跳转到评分页 FormationEntity entity = mHeaderAdapter.getItem(pos); if (entity != null) { Intent in = new Intent(getActivity(), PlayersRatingActivity.class); if (getActivity() instanceof FootballGameActivity) { in.putExtra("tag", ((FootballGameActivity) getActivity()).getTag()); in.putExtra("oid", entity.player_id); startActivity(in); } } } else { // 球员详情页 } } } }