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;
}
}
}