package com.hupu.games.fragment; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; 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 com.hupu.games.R; import com.hupu.games.activity.NBAGameActivity; import com.hupu.games.activity.PlayerRatingActivity; import com.hupu.games.activity.UserRateActivity; import com.hupu.games.adapter.PlayersRatingListAdapter; import com.hupu.games.common.HuPuRes; import com.hupu.games.data.PlayerRatingEntity; import com.hupu.games.data.PlayersRatingListResp; import com.hupu.games.data.UserRatingEntity; import com.hupu.games.view.XListView; import com.hupu.games.view.XListView.IXListViewListener; /** * 球员评分列表页 * */ public class PlayersRatingFragment extends BaseFragment { XListView mListView; NBAGameActivity mAct; PlayersRatingListAdapter mPlayerAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } private int REQ_MY_RATING=731; private static final int REQ_RATE_PLAYER = 732; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Log.d("PlayersRatingFragment", "requestCode="+requestCode); if (resultCode == Activity.RESULT_OK && requestCode == REQ_MY_RATING) { //需要更新的 int index = data.getIntExtra("index", -1); int score = data.getIntExtra("rating", -1); int oid = data.getIntExtra("oid", -1); String desc = data.getStringExtra("desc"); // mPlayerAdapter.getItem(index).my_rating=score; mPlayerAdapter.notifyDataSetChanged(); if(index >-1) reqUserRating(oid,"nba",score,desc); } else if( REQ_RATE_PLAYER == requestCode && resultCode == Activity.RESULT_OK ) { updateData((UserRatingEntity)data.getSerializableExtra("entity")); } } @Override public void onAttach(Activity activity) { super.onAttach(activity); mAct =(NBAGameActivity)activity; mPlayerAdapter =new PlayersRatingListAdapter(activity,new Click()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view =inflater.inflate(R.layout.fragment_players,null); mListView =(XListView)view.findViewById(R.id.list_player); mListView.setPullLoadEnable(false, false); mListView.setXListViewListener(new pullListener()); mListView.setOnItemClickListener(new ListClick()); mListView.setAdapter(mPlayerAdapter); mListView.setHeaderBackground(); if (bFirstCreate) { bFirstCreate = false; reqPlayersRating(false); } return view; } private boolean bFirstCreate; private PlayersRatingListResp mData; private String type ="nba"; @Override public void entry() { if (mAct == null) { bFirstCreate = true; } else { reqPlayersRating(false); } } public void setData(PlayersRatingListResp data ) { mData =data; mPlayerAdapter.setData(data.mList); mListView.stopRefresh(); if(mData.mList ==null) mAct.showToast("没有数据"); } public void updateData(UserRatingEntity en) { entity.my_rating=en.my_rating; entity.ratings =en.ratings; entity.user_num =en.user_num; mPlayerAdapter.notifyDataSetChanged(); } private void reqPlayersRating(boolean isMan) { if(!isMan) mListView.setFreshState(); mParams = mAct.getHttpParams(); mParams.put("type", type); mAct.sendRequest(HuPuRes.REQ_METHOD_RATING_LIST, mParams); } /** * 发送用户打分数据 * */ private void reqUserRating(int oid,String type,int rating,String desc) { mParams = mAct.getHttpParams(); mParams.put("oid", ""+oid); mParams.put("type", type); mParams.put("rating", ""+rating); mParams.put("desc", desc); mAct.sendRequest(HuPuRes.REQ_METHOD_RATING_RATE, mParams); } /** 设置listview 上拉和下拉的监听 */ class pullListener implements IXListViewListener { @Override public void onRefresh() { reqPlayersRating(true); } @Override public void onLoadMore() { } } /** 设置listview点击监听器 */ class ListClick implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { if (pos < 1) return; entity =mPlayerAdapter.getItem(pos-1); Intent in = new Intent(mAct, PlayerRatingActivity.class); in.putExtra("profile", entity); startActivityForResult(in, REQ_RATE_PLAYER); } } PlayerRatingEntity entity; class Click implements OnClickListener { @Override public void onClick(View v) { int index = (Integer)v.getTag(); entity =mPlayerAdapter.getItem(index); if(entity.my_rating ==0) { //如果没有评过分数就 Intent in =new Intent(mAct, UserRateActivity.class); in.putExtra("name", entity.name); in.putExtra("oid", entity.oid); in.putExtra("index", index); in.putExtra("obj_type", entity.obj_type); in.putExtra("obj_id", entity.obj_id); startActivityForResult(in, REQ_MY_RATING); } } } }