package com.partynetwork.iparty.iparty; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Handler.Callback; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.TextView; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.AppException; import com.partynetwork.iparty.app.bean.IpartyList; import com.partynetwork.iparty.info.IpartyInfo; import com.partynetwork.myview.mylistview.XListView; import com.partynetwork.myview.mytoast.LoadingDialog; public class CityIpartyActivity extends Activity implements Callback, OnClickListener { private LinearLayout headLeft; private ImageView headLeftImg; private TextView headTitle; private LinearLayout headRight; private ImageView headRightImg; private LinearLayout radioLayout; private RadioButton distanceBtn; private RadioButton timeBtn; private RadioButton moneyBtn; private XListView listView; private IpartyAdapter lvIpartyAdapter; private ArrayList<IpartyInfo> lvIpartyData; private RadioButton[] radios; private Handler mHandler; private AppContext appContext; private int ipartyType; private String cityNum; private int mCurSel = 0; // 上一次选择 // 小菊花 private LoadingDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.city_iparty); Intent intent = getIntent(); ipartyType = intent.getIntExtra("ipartyType", 0); cityNum = intent.getStringExtra("cityNum"); initView(); initData(); } private void initData() { mHandler = new Handler(this); appContext = (AppContext) getApplication(); lvIpartyData = new ArrayList<IpartyInfo>(); lvIpartyAdapter = new IpartyAdapter(this, lvIpartyData); listView.setAdapter(lvIpartyAdapter); dialog = new LoadingDialog(this); switch (ipartyType) { case 0: headTitle.setText("所有"); break; case 1: headTitle.setText("今天"); break; case 2: headTitle.setText("明天"); break; case 3: headTitle.setText("本周"); break; default: break; } dialog.show(); new Thread() { public void run() { Message msg = new Message(); try { IpartyList ipartyList = appContext.getIpartyList4City( ipartyType, cityNum); // 保存信息 // ... // 待完成 msg.what = 1;// 成功 msg.obj = ipartyList; } catch (AppException e) { e.printStackTrace(); msg.what = -1; msg.obj = e; } mHandler.sendMessage(msg); } }.start(); } private void initView() { headLeft = (LinearLayout) findViewById(R.id.menu_head_left); headLeft.setOnClickListener(this); headLeftImg = (ImageView) findViewById(R.id.menu_head_left_iv); headTitle = (TextView) findViewById(R.id.menu_head_middle_text); headTitle.setTextColor(Color.BLACK); headRight = (LinearLayout) findViewById(R.id.menu_head_right); headRight.setOnClickListener(this); headRightImg = (ImageView) findViewById(R.id.menu_head_right_iv); headLeftImg.setImageResource(R.drawable.menu_head_back); headRightImg.setImageResource(R.drawable.menu_head_map); radioLayout = (LinearLayout) findViewById(R.id.radio_layout); int viewCount = radioLayout.getChildCount(); radios = new RadioButton[viewCount]; View.OnClickListener clickListtener = new OnClickListener() { @Override public void onClick(View v) { int pos = (Integer) (v.getTag()); switch (pos) { case 0: break; case 1: break; case 2: break; default: break; } radios[mCurSel].setChecked(false); radios[pos].setChecked(true); mCurSel = pos; } }; for (int i = 0; i < viewCount; i++) { radios[i] = (RadioButton) radioLayout.getChildAt(i); radios[i].setTag(i); radios[i].setChecked(false); radios[i].setOnClickListener(clickListtener); } mCurSel = 0; radios[mCurSel].setChecked(true); listView = (XListView) findViewById(R.id.iparty_list); listView.setPullLoadEnable(false); listView.setPullRefreshEnable(false); } @Override public boolean handleMessage(Message msg) { switch (msg.what) { case -1: // 错误 AppException e = (AppException) msg.obj; e.makeToast(this); break; case 0: // 刷新 break; case 1: // IpartyList ipartyList = (IpartyList) msg.obj; if (ipartyList != null && !ipartyList.getIpartyList().isEmpty()) { lvIpartyData.addAll(ipartyList.getIpartyList()); } lvIpartyAdapter.notifyDataSetChanged(); break; default: break; } dialog.hide(); return false; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.menu_head_left: finish(); break; case R.id.menu_head_right: Intent intent = new Intent(this, CityIpartyMapActivity.class); intent.putParcelableArrayListExtra("arratList", lvIpartyData); startActivity(intent); break; default: break; } } }