package com.hupu.games.fragment;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.activity.BaseGameActivity;
import com.hupu.games.activity.HupuBaseActivity;
import com.hupu.games.activity.NBAPlayerInfoActivity;
import com.hupu.games.adapter.NbaTeamPlayersDataAdapter;
import com.hupu.games.common.HuPuRes;
import com.hupu.games.common.HupuLog;
import com.hupu.games.data.game.basketball.NbaPlayersDataReq;
import com.hupu.games.data.game.basketball.NbaPlayersDataReq.PlayerDataEntity;
import com.hupu.games.view.HScrollView;
import com.hupu.games.view.HScrollView.ScrollViewObserver1;
/**
* 球队球员数据页
* */
public class NbaPlayersDataFragment extends BaseFragment {
NbaTeamPlayersDataAdapter mAdapter;
ListView mListView;
ListClick listClick;
int i_tid;
View progress;
RelativeLayout mHead;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (i_tid == 0)
i_tid = getArguments().getInt("tid");
}
int txtCol;
LayoutInflater mLayoutInflater;
int txtWidth;
int txtHeight;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
txtCol = activity.getResources().getColor(R.color.res_cor1);
mLayoutInflater = LayoutInflater.from(activity);
txtWidth = activity.getResources().getDimensionPixelSize(
R.dimen.txt_player);
txtHeight = activity.getResources().getDimensionPixelSize(
R.dimen.txt_player_height);
}
ScrollViewObserver1 sob;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_nba_player_data, container,
false);
mListView = (ListView) v.findViewById(R.id.list_players);
mListView.setOnItemClickListener(new ListClick());
progress = v.findViewById(R.id.probar);
mListView.setOnTouchListener(new ListViewTouchLinstener());
mHead = (RelativeLayout) v.findViewById(R.id.head);
if (mAdapter == null) {
sob = new ScrollViewObserver1();
mAdapter = new NbaTeamPlayersDataAdapter(getActivity(), sob);
}
sob.clear();
((HScrollView) mHead.findViewById(R.id.hscrollview)).setNoHeader(sob);
mListView.setAdapter(mAdapter);
if (mData != null) {
setData(mData);
}
return v;
}
TextView txtHeaderName;
private void buildHeader() {
txtHeaderName = (TextView) mHead.findViewById(R.id.txt_player_name);
txtHeaderName.setText(mData.headerValues[0]);
LinearLayout container = (LinearLayout) mHead
.findViewById(R.id.layout_containter);
container.removeAllViews();
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
txtWidth, txtHeight);
params.gravity = Gravity.CENTER_VERTICAL;
TextView[] tvs = new TextView[mData.headerValues.length - 1];
for (int i = 0; i < mData.headerValues.length - 1; i++) {
tvs[i] = buildTextView();
tvs[i].setText(mData.headerValues[i + 1]);
container.addView(tvs[i], params);
}
}
/**
* @param type
* 0 表示标题 1表示数据
* */
private TextView buildTextView() {
TextView tv = (TextView) mLayoutInflater.inflate(
R.layout.txt_player_data, null);
return tv;
}
boolean getData;
NbaPlayersDataReq mData;
int size;
/** 重新刷新数据 */
public void setData(NbaPlayersDataReq data) {
mData = data;
if (mAdapter != null) {
mHead.setVisibility(View.VISIBLE);
progress.setVisibility(View.GONE);
if (data.headerKeys != null) {
buildHeader();
mAdapter.setData(data.mDataList);
}
}
}
@Override
public void entry() {
super.entry();
}
class ListClick implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
((HupuBaseActivity) getActivity()).sendUmeng(
HuPuRes.UMENG_EVENT_NBAPLAYERS, HuPuRes.UMENG_KEY_ENTRANCE,
HuPuRes.UMENG_VALUE_NBA_PLAYER_REVIEW);
PlayerDataEntity entity = mAdapter.getItem(pos);
Intent in = new Intent(getActivity(), NBAPlayerInfoActivity.class);
in.putExtra("pid", entity.player_id);
startActivity(in);
}
}
class ListViewTouchLinstener implements View.OnTouchListener {
float historicX = Float.NaN;
static final int DELTA_ON_CLICK = 20;
float x0;
float y0;
@SuppressLint("NewApi")
@Override
public boolean onTouch(View arg0, MotionEvent event) {
// 当在listView控件上touch时,将这个touch的事件分发给 ScrollView
// HupuLog.d("ListViewTouchLinstener",
// "action="+event.getAction()+" X="+event.getX()+" y="+event.getY());
HorizontalScrollView scrollView = (HorizontalScrollView) mHead
.findViewById(R.id.hscrollview);
scrollView.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x0 = event.getX();
y0 = event.getY();
break;
case MotionEvent.ACTION_UP:
float cx = event.getX();
float cy = event.getY();
if (Math.abs(cx - x0) > DELTA_ON_CLICK
|| Math.abs(cy - y0) > DELTA_ON_CLICK)
return true;
break;
}
return false;
}
}
}