package com.hupu.games.fragment; import java.util.LinkedList; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.activity.FootballPlayerInfoActivity; import com.hupu.games.activity.HupuHomeActivity; import com.hupu.games.activity.SoccerTeamActivity; import com.hupu.games.adapter.RanksAdapter; import com.hupu.games.common.HuPuRes; import com.hupu.games.common.HupuLog; import com.hupu.games.common.SharedPreferencesMgr; import com.hupu.games.data.RanksEntity; import com.hupu.games.data.RanksResp; import com.hupu.games.fragment.BaseFragment.FragmentHttpResponseHandler; import com.hupu.games.view.HupuWebView; import com.mato.sdk.proxy.Proxy; /** * 足球 排行 * * @author papa * */ @SuppressLint("ValidFragment") public class FootballRankFragment extends BaseFragment { private LinkedList<RanksEntity> ranks; private LayoutInflater inflater; private LinearLayout standingsLayout, assistsLayout, goalsLayout; private Button standingsButton, assistsButton, goalsButton; private HupuWebView rankWebView; RanksAdapter ranksAdapter; ListView rankListView; ProgressBar loadProgressBar; private String mTag; TextView footTv; public FootballRankFragment(String tag) { super(); mTag = tag; } @Override public void onActivityCreated(Bundle savedInstanceState) { mAct = (HupuHomeActivity) getActivity(); // 设置点击监听 click = new Click(); standingsButton.setOnClickListener(click); assistsButton.setOnClickListener(click); goalsButton.setOnClickListener(click); super.onActivityCreated(savedInstanceState); } Click click; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { this.inflater = inflater; View v = inflater.inflate(R.layout.fragment_football_standing, container, false); v = init(v); return v; } private View init(View v) { // 实例化 standingsLayout = (LinearLayout) v .findViewById(R.id.layout_standings_top_title); assistsLayout = (LinearLayout) v .findViewById(R.id.layout_assists_top_title); goalsLayout = (LinearLayout) v .findViewById(R.id.layout_goals_top_title); standingsButton = (Button) v.findViewById(R.id.btn_standings); assistsButton = (Button) v.findViewById(R.id.btn_assists); goalsButton = (Button) v.findViewById(R.id.btn_goals); rankListView = (ListView) v.findViewById(R.id.list_standings); loadProgressBar = (ProgressBar) v.findViewById(R.id.load_progress); rankWebView = (HupuWebView) v.findViewById(R.id.rank_webview); Proxy.supportWebview(getActivity()); // 设置数据适配器 ranksAdapter = new RanksAdapter(mAct, new Click()); reqData(); rankListView.setAdapter(ranksAdapter); // rankListView.setOnItemClickListener(new OnItemClickListener() { // // @Override // public void onItemClick(AdapterView<?> parent, View view, // int position, long id) { // // TODO Auto-generated method stub // if ("worldcup".equals(tag)) { // Intent in = new Intent(getActivity(), // FootballPlayerInfoActivity.class); // in.putExtra("pid", entity.player_id); // startActivity(in); // } // } // }); // 初始化专题 ranksAdapter.notifyDataSetChanged(); clearAll(); return v; } private void addRealtimeTips(){ if(rankListView.getFooterViewsCount()==0 && !mTag.equalsIgnoreCase("csl")){//5大联赛和欧冠(排除中超) footTv = new TextView(mAct); try { footTv.setText(SharedPreferencesMgr.getString("leagueScoreboardTips", getActivity().getString(R.string.league_standinglist_tips))); footTv.setPadding(10, 15, 10, 30); footTv.setTextColor(getActivity().getResources().getColor(R.color.txt_status)); rankListView.addFooterView(footTv); } catch (Exception e) { // TODO: handle exception } } } private void showRealtimetips(boolean isStanding){ if( rankListView.getFooterViewsCount()<=0) return; if(isStanding){ footTv.setVisibility(View.VISIBLE); }else{ footTv.setVisibility(View.GONE); } } public void setData(RanksResp resp) { // if(resp.ranks!=null && ranks ==null) // { // ranks = resp.ranks; // showRanking(); // } // else // { // // // ranks = resp.ranks; // } if (resp.ranks != null) { ranks = resp.ranks; showRanking(); // 去掉头部标示 此标示被配置文件写死了! for (int i = 0; i < ranks.size(); i++) { if ("".equals(ranks.get(i).web_url)) { ranks.get(i).ranks_data.remove(0); } } } else { if (loadProgressBar != null) { loadProgressBar.setVisibility(View.GONE); } } } private void clearAll() { standingsLayout.setVisibility(View.GONE); assistsLayout.setVisibility(View.GONE); goalsLayout.setVisibility(View.GONE); standingsButton .setBackgroundResource(R.drawable.btn_rank_type_selector); assistsButton.setBackgroundResource(R.drawable.btn_rank_type_selector); goalsButton.setBackgroundResource(R.drawable.btn_rank_type_selector); } private class Click implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_standings: clearAll(); standingsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); for (RanksEntity rank : ranks) { if (rank.rank_type.equals("standings")) {//积分榜 if ("".equals(rank.web_url)) { standingsLayout.setVisibility(View.VISIBLE); ranksAdapter.setData(rank.ranks_data, rank.rank_type, Integer.parseInt(rank.online), Integer.parseInt(rank.offline)); rankListView.setVisibility(View.VISIBLE); rankWebView.setVisibility(View.GONE); rankListView.setAdapter(ranksAdapter); addRealtimeTips(); ranksAdapter.notifyDataSetChanged(); } else { setWebview(rank.web_url); break; } } } showRealtimetips(true); break; case R.id.btn_assists: clearAll(); assistsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); for (RanksEntity rank : ranks) { if (rank.rank_type.equals("assists")) { if ("".equals(rank.web_url)) { assistsLayout.setVisibility(View.VISIBLE); ranksAdapter.setData(rank.ranks_data, rank.rank_type, Integer.parseInt(rank.online), Integer.parseInt(rank.offline)); rankListView.setAdapter(ranksAdapter); ranksAdapter.notifyDataSetChanged(); rankListView.setVisibility(View.VISIBLE); rankWebView.setVisibility(View.GONE); } else { setWebview(rank.web_url); } break; } } showRealtimetips(false); break; case R.id.btn_goals: clearAll(); goalsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); for (RanksEntity rank : ranks) { if (rank.rank_type.equals("goals")) { if ("".equals(rank.web_url)) { goalsLayout.setVisibility(View.VISIBLE); ranksAdapter.setData(rank.ranks_data, rank.rank_type, Integer.parseInt(rank.online), Integer.parseInt(rank.offline)); rankListView.setAdapter(ranksAdapter); ranksAdapter.notifyDataSetChanged(); rankListView.setVisibility(View.VISIBLE); rankWebView.setVisibility(View.GONE); } else { setWebview(rank.web_url); } break; } } showRealtimetips(false); break; case R.id.rank_layout: int pid = Integer.parseInt(v.getTag().toString()); HupuLog.e("papa", "pid===" + pid); if (pid != 0) { Intent in = new Intent(getActivity(), FootballPlayerInfoActivity.class); in.putExtra("pid", pid); in.putExtra("tag", mTag); startActivity(in); } break; case R.id.lay_team: int tId = Integer.parseInt(v.getTag().toString()); if (tId != 0) { Intent in = new Intent(getActivity(), SoccerTeamActivity.class); in.putExtra("tid", tId); in.putExtra("tag", mTag); startActivity(in); } break; default: break; } } } void reqData() { loadProgressBar.setVisibility(View.VISIBLE); mParams = mAct.getHttpParams(true); if (!mAct.isActiveFragment(this)) { mParams.put("preload", "1"); } // mAct.sendTagRequest(HuPuRes.REQ_METHOD_GET_FOOTBALL_RANK, mParams); mAct.sendAppRequest(HuPuRes.REQ_METHOD_GET_FOOTBALL_RANK,mTag, mParams,new FragmentHttpResponseHandler()); } void showRanking() { if (ranks != null) { if (ranks.get(0).rank_type.equals("standings")) { standingsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); standingsLayout.setVisibility(View.VISIBLE); addRealtimeTips(); } else if (ranks.get(0).rank_type.equals("assists")) { assistsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); assistsLayout.setVisibility(View.VISIBLE); } else { goalsButton .setBackgroundResource(R.drawable.btn_rank_type_bg_down); goalsLayout.setVisibility(View.VISIBLE); } if ("".equals(ranks.get(0).web_url)) { ranksAdapter.setData(ranks.get(0).ranks_data, ranks.get(0).rank_type, Integer.parseInt(ranks.get(0).online), Integer.parseInt(ranks.get(0).offline)); rankListView.setVisibility(View.VISIBLE); rankWebView.setVisibility(View.GONE); rankListView.setAdapter(ranksAdapter); // 初始化专题 ranksAdapter.notifyDataSetChanged(); loadProgressBar.setVisibility(View.GONE); setTouchModeAbove(false); } else { setWebview(ranks.get(0).web_url); setTouchModeAbove(true); } standingsButton.setVisibility(View.GONE); assistsButton.setVisibility(View.GONE); goalsButton.setVisibility(View.GONE); // StringBuffer sb = new Stringbuffer(); for (RanksEntity rank : ranks) { if (rank.rank_type.equals("standings")) { standingsButton.setVisibility(View.VISIBLE); standingsButton.setText(rank.title); } if (rank.rank_type.equals("assists")) { assistsButton.setVisibility(View.VISIBLE); assistsButton.setText(rank.title); } if (rank.rank_type.equals("goals")) { goalsButton.setVisibility(View.VISIBLE); goalsButton.setText(rank.title); } } } } private void setTouchModeAbove(boolean bMargin) { if (getActivity() != null) { ((HupuHomeActivity) getActivity()).setTouchModeAbove(bMargin); } } private void setWebview(String url) { standingsLayout.setVisibility(View.GONE); assistsLayout.setVisibility(View.GONE); goalsLayout.setVisibility(View.GONE); rankListView.setVisibility(View.GONE); rankWebView.setVisibility(View.VISIBLE); rankWebView.loadUrl(url); loadProgressBar.setVisibility(View.GONE); } @Override public void entry() { if (ranksAdapter != null) { ranks = new LinkedList<RanksEntity>(); ranksAdapter.notifyDataSetChanged(); } } @Override public void onSuccess(Object o, int reqType) { setData((RanksResp) o); } public void onFailure(Throwable error, int reqType) { } }