package com.hupu.games.fragment; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.activity.FootballGameActivity; import com.hupu.games.activity.FootballPlayerInfoActivity; import com.hupu.games.adapter.FootballEventsListAdapter; import com.hupu.games.data.game.football.SoccerEventsResp; import com.hupu.games.data.game.football.ScoreboardEntity; import com.hupu.games.view.XListView.IXListViewListener; /** * 直播fragment * */ @SuppressLint("ValidFragment") public class FootballLiveFragment extends BaseFragment { private ListView mLvLive; private FootballEventsListAdapter mListAdapter; private View mProgressBar; FootballGameActivity mAct; TextView nodata,nodata2; boolean bGetData; FootballTimeTask task; Handler timeTaskHandler; private int delayTime=30000; private boolean startTime; SoccerEventsResp liveData; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onAttach(Activity activity) { super.onAttach(activity); mAct = (FootballGameActivity) activity; mListAdapter = new FootballEventsListAdapter(mAct,new Click()); } boolean start; /** 比赛是否开始了 */ public void isStart(boolean s) { start = s; if (start && nodata != null){ nodata.setVisibility(View.GONE); nodata2.setVisibility(View.GONE); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); setUserVisibleHint(true); } public void entry() { if(mAct!=null) { reqData(); if(bGetData && mListAdapter.getCount() >0) mLvLive.setSelection(0); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_football_live, container, false); mProgressBar = v.findViewById(R.id.probar); nodata = (TextView)v.findViewById(R.id.txt_no_data); nodata2 = (TextView)v.findViewById(R.id.txt_no_data2); if (bGetData || start) mProgressBar.setVisibility(View.GONE); if (start){ nodata.setVisibility(View.GONE); nodata2.setVisibility(View.GONE); } if(liveData ==null) reqData(); mLvLive = (ListView) v.findViewById(R.id.list_live); mLvLive.setAdapter(mListAdapter); return v; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } public void setData(SoccerEventsResp data,String stag) { tag = stag; liveData = data; bGetData = true; if (mProgressBar != null) mProgressBar.setVisibility(View.GONE); if (mListAdapter != null) { mListAdapter.setData(liveData.mDatas); } if(mListAdapter.getCount() ==0 ) { nodata.setVisibility(View.VISIBLE); nodata2.setVisibility(View.VISIBLE); } else if(mListAdapter.getCount() ==1 ) { //只有比赛开始事件的时候 nodata.setVisibility(View.VISIBLE); nodata2.setVisibility(View.VISIBLE); } else { nodata.setVisibility(View.GONE); nodata2.setVisibility(View.GONE); } if (liveData.scoreBoard.code == ScoreboardEntity.STATUS_END) EndTimer(); else { // delayTime =30000; startTimer(); } if (liveData.scoreBoard.code == ScoreboardEntity.STATUS_START || liveData.scoreBoard.code == ScoreboardEntity.STATUS_END) isStart(true); } /** 网络请求失败后重试 */ private void retry() { startTimer(); } private void startTimer() { startTime = true; if (timeTaskHandler == null) { timeTaskHandler = new Handler(); } task = new FootballTimeTask(); timeTaskHandler.postDelayed(task, delayTime); } private void EndTimer() { if (timeTaskHandler != null) { timeTaskHandler.removeCallbacks(task); timeTaskHandler = null; } startTime = false; } private void reqData() { mAct.req(); } class FootballTimeTask implements Runnable { @Override public void run() { reqData(); } } class pullListener implements IXListViewListener { @Override public void onRefresh() { } @Override public void onLoadMore() { } } @Override public void onDestroy() { super.onDestroy(); EndTimer(); } @Override public void onPause() { super.onPause(); if (timeTaskHandler != null) timeTaskHandler.removeCallbacks(task); } @Override public void onResume() { super.onResume(); if (startTime) startTimer(); } private String tag; public class Click implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub int pid = 0; if ("".equals(v.getTag().toString()) && v.getTag() !=null) { pid = 0; }else { pid = Integer.parseInt(v.getTag().toString()); } if (pid != 0) { Intent in = new Intent(getActivity(), FootballPlayerInfoActivity.class); in.putExtra("pid", pid); in.putExtra("tag", tag); startActivity(in); } } } }