package com.hupu.games.activity; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import com.hupu.games.R; import com.hupu.games.adapter.SingleHonourListAdapter; import com.hupu.games.common.HuPuRes; import com.hupu.games.common.SharedPreferencesMgr; import com.hupu.games.data.SingleHonourEntity; import com.hupu.games.view.XListView; import com.hupu.games.view.XListView.IXListViewListener; import com.hupu.http.HupuHttpHandler; public class SingerRankingActivity extends HupuBaseActivity { XListView list; SingleHonourListAdapter adapter; String gid; String lid; private int curTab = 0; LinkedList<SingleHonourEntity> listData = new LinkedList<SingleHonourEntity>(); List<Button> btnList = new ArrayList<Button>(); View headView=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_single_ranking); list = (XListView) this.findViewById(R.id.list_honour); adapter = new SingleHonourListAdapter(this); list.setXListViewListener(new pullListener()); // 初始化时不需要刷新 list.setPullLoadEnable(false, false); gid = this.getIntent().getStringExtra("gid"); lid = this.getIntent().getStringExtra("lid"); initData(); setOnClickListener(R.id.btn_back); } @Override public void treatClickEvent(int id) { switch (id) { case R.id.btn_back: finish(); break; } } @Override public void onReqResponse(Object o, int methodId) { super.onReqResponse(o, methodId); if (o == null) return; if (methodId == HuPuRes.REQ_METHOD_GET_TOTAL_MATCH_RANKING) { SingleHonourEntity entity = (SingleHonourEntity) o; listData = entity.mList; if(headView==null){ headView = LayoutInflater.from(this).inflate( R.layout.item_honor_list_head, null); list.addHeaderView(headView); list.setAdapter(adapter); } LinearLayout layout_top = (LinearLayout) headView .findViewById(R.id.layout_top); if(headView!=null) layout_top.removeAllViews(); int i = 0; for (SingleHonourEntity singEntity : entity.mList) { View view = LayoutInflater.from(this).inflate( R.layout.item_honor_head, null); Button btn = (Button) view; if (curTab == i) btn.setBackgroundResource(R.drawable.btn_rank_type_bg_down); btn.setTag(i); btnList.add(btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub curTab = Integer.parseInt(v.getTag().toString()); for (int i = 0; i < btnList.size(); i++) { if (curTab != i) { btnList.get(i).setBackgroundResource( R.drawable.btn_rank_type_bg); } } v.setBackgroundResource(R.drawable.btn_rank_type_bg_down); updateListData(); } }); btn.setText(singEntity.name); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.FILL_PARENT, 1.0f); layout_top.addView(view, lp); i++; } LinkedList<SingleHonourEntity> uData = new LinkedList<SingleHonourEntity>(); uData = listData.get(curTab).hList; if(entity.mList.get(curTab).myEntity!=null&&entity.mList.get(curTab).myEntity.rank>10) uData.add(entity.mList.get(curTab).myEntity); adapter.setData(uData); headView.invalidate(); } } private void initData() { initParameter(); mParams.put("lid", lid); mParams.put("gid", gid); mParams.put("token", SharedPreferencesMgr.getString("tk", null)); sendRequest(HuPuRes.REQ_METHOD_GET_TOTAL_MATCH_RANKING, mParams, new HupuHttpHandler(this), true); } /** 设置listview 上拉和下拉的监听 */ class pullListener implements IXListViewListener { @Override public void onRefresh() { initData(); } @Override public void onLoadMore() { initData(); } } void updateListData() { LinkedList<SingleHonourEntity> uData = new LinkedList<SingleHonourEntity>(); for(SingleHonourEntity entity:listData.get(curTab).hList){ uData.add(entity); } if(listData.get(curTab).myEntity.rank>10){ uData.add(listData.get(curTab).myEntity); } adapter.setData(uData); } }