/** * */ package com.hupu.games.activity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import com.hupu.games.R; 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; import com.hupu.http.HupuHttpHandler; import com.pyj.http.RequestParams; /** * @author panyongjun 所有球员的所有打分列表页 */ public class PlayersRatingActivity extends HupuBaseActivity { XListView mListView; PlayersRatingListAdapter mPlayerAdapter; 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 onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_players); setOnClickListener(R.id.btn_back); mListView = (XListView) findViewById(R.id.list_player); mListView.setPullLoadEnable(false, false); mListView.setXListViewListener(new pullListener()); mListView.setOnItemClickListener(new ListClick()); mPlayerAdapter = new PlayersRatingListAdapter(this, new Click()); mListView.setAdapter(mPlayerAdapter); mListView.setHeaderBackground(); if (bFirstCreate) { bFirstCreate = false; reqPlayersRating(false); } initParameter(); mParams.put("gid", getIntent().getStringExtra("gid")); reqPlayersRating(false); } private boolean bFirstCreate; private PlayersRatingListResp mData; private String type = "nba"; public void setData(PlayersRatingListResp data) { mData = data; mPlayerAdapter.setData(data.mList); mListView.stopRefresh(); if (mData.mList == null) showToast("没有数据"); } public void updateData(UserRatingEntity en) { entity.my_rating = en.my_rating; entity.ratings = en.ratings; entity.user_num = en.user_num; mPlayerAdapter.notifyDataSetChanged(); } public boolean sendRequest(int reqType, RequestParams params) { return sendRequest(reqType, params, new HupuHttpHandler(this)); } private void reqPlayersRating(boolean isMan) { if (!isMan) mListView.setFreshState(); mParams.put("type", type); sendRequest(HuPuRes.REQ_METHOD_RATING_LIST, mParams); } /** * 发送用户打分数据 * */ private void reqUserRating(int oid, String type, int rating, String desc) { mParams.put("oid", "" + oid); mParams.put("type", type); mParams.put("rating", "" + rating); mParams.put("desc", desc); sendRequest(HuPuRes.REQ_METHOD_RATING_RATE, mParams); } /** 设置listview 上拉和下拉的监听 */ class pullListener implements IXListViewListener { @Override public void onRefresh() { reqPlayersRating(true); } @Override public void onLoadMore() { } } @Override public void onReqResponse(Object o, int methodId) { super.onReqResponse(o, methodId); switch (methodId) { case HuPuRes.REQ_METHOD_RATING_LIST: PlayersRatingListResp rating = (PlayersRatingListResp) o; setData(rating); break; case HuPuRes.REQ_METHOD_RATING_RATE: UserRatingEntity entity = (UserRatingEntity) o; showToast("评分成功"); updateData(entity); break; } } /** 设置listview点击监听器 */ class ListClick implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { if (pos < 1) return; if (mPlayerAdapter.getItem(pos - 1) == null) return; entity = mPlayerAdapter.getItem(pos - 1); Intent in = new Intent(PlayersRatingActivity.this, PlayerRatingActivity.class); in.putExtra("profile", entity); startActivityForResult(in, REQ_RATE_PLAYER); } } @Override public void treatClickEvent(int id) { super.treatClickEvent(id); if (id == R.id.btn_back) finish(); } 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(PlayersRatingActivity.this, UserRateActivity.class); in.putExtra("name", entity.name); in.putExtra("oid", entity.oid); in.putExtra("index", index); startActivityForResult(in, REQ_MY_RATING); } } } }