/**
*
*/
package com.keju.maomao.activity.personalnfo;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import com.keju.maomao.Constants;
import com.keju.maomao.R;
import com.keju.maomao.SystemException;
import com.keju.maomao.activity.base.BaseActivity;
import com.keju.maomao.bean.ProvinceBean;
import com.keju.maomao.bean.ResponseBean;
import com.keju.maomao.helper.BusinessHelper;
import com.keju.maomao.util.NetUtil;
/**
* 省选择界面
*
* @author zhouyong
* @data 创建时间:2013-11-11 下午8:21:15
*/
public class ProvinceAcitvity extends BaseActivity implements OnClickListener {
private ImageButton ibLeft;
private TextView tvTitle;
private Button btnRight;
private ListView listview;
private Adapter adapter;
private ArrayList<ProvinceBean> provinceList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.province_list);
findView();
fillData();
}
private void findView() {
ibLeft = (ImageButton) this.findViewById(R.id.ibLeft);
btnRight = (Button) this.findViewById(R.id.btnRight);
tvTitle = (TextView) this.findViewById(R.id.tvTitle);
listview = (ListView) this.findViewById(R.id.provinceList);
}
private void fillData() {
ibLeft.setOnClickListener(this);
ibLeft.setImageResource(R.drawable.ic_btn_left);
btnRight.setOnClickListener(this);
tvTitle.setText("地区选择");
provinceList = new ArrayList<ProvinceBean>();
adapter = new Adapter();
listview.setAdapter(adapter);
listview.setOnItemClickListener(itemListener);
listview.setDividerHeight(0);//消除listview自带每个item之间的分割线
if (NetUtil.checkNet(this)) {
new GetProvinceTask().execute();
} else {
showShortToast(R.string.NoSignalException);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ibLeft:
finish();
break;
default:
break;
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && requestCode == Constants.REQUEST_CODE_CHOOSE_AREA){
finish();
}
};
/**
* listview点击事件
*/
OnItemClickListener itemListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if (arg2 >= provinceList.size()) {
return;
}
ProvinceBean bean = provinceList.get(arg2);
Bundle b = new Bundle();
b.putSerializable(Constants.EXTRA_DATA, bean.getList());
b.putInt("province", bean.getProvinceId());
Intent intent = new Intent(ProvinceAcitvity.this,CityActivity.class);
intent.putExtras(b);
startActivityForResult(intent, Constants.REQUEST_CODE_CHOOSE_AREA);
}
};
/**
*
* 获取地区选择
*
* */
private class GetProvinceTask extends AsyncTask<Void, Void, ResponseBean<ProvinceBean>> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showPd(R.string.loading);
}
@Override
protected ResponseBean<ProvinceBean> doInBackground(Void... params) {
try {
return new BusinessHelper().getArea();
} catch (SystemException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ResponseBean<ProvinceBean> result) {
super.onPostExecute(result);
dismissPd();
if (result.getStatus() != Constants.REQUEST_FAILD) {
List<ProvinceBean> tempList = result.getObjList();
if (tempList.size() > 0) {
provinceList.addAll(tempList);
adapter.notifyDataSetChanged(); // 通知更新
}
}
}
}
/**
*
* 筛选地区适配器
*
* */
private class Adapter extends BaseAdapter {
@Override
public int getCount() {
return provinceList.size();
}
@Override
public Object getItem(int position) {
return provinceList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ProvinceBean bean = provinceList.get(position);
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = getLayoutInflater().inflate(R.layout.popu_data_picker_item, null);
holder.tvScreenArea = (TextView) convertView.findViewById(R.id.tvScreenArea);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvScreenArea.setText(bean.getProvinceName());
return convertView;
}
class ViewHolder {
private TextView tvScreenArea;
}
}
}