package com.jiuqi.njt.ui;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import com.jqyd.android.module.lbs.util.CheckState_interface;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.KindsOfCarBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.manager.base.IKindsOfCarManager;
import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.Optdb_interfce;
import com.jiuqi.njt.son.MyState;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.TitleBarUtil;
import com.jiuqi.njt.util.UIUtil;
import com.jiuqi.njt.widget.ProgressDialogStyle;
/**
* <p>
* 补贴目录查询
* </p>
*
* <p>
* Copyright: 版权所有 (c)<br>
* Company: 久其
* </p>
*
*/
public class QueryBtmlActivity extends Activity implements OnClickListener {
private EditText etName;
private Button btnProvince;
private Button btnQuery;
private Spinner pm_spinner;
private Spinner xl_spinner;
private Spinner dl_spinner;
private MyApp application;
private List<String> dlStrList;
private List<String> xlStrList;
private List<String> pmStrList;
private KindsOfCarBean[] maps1;
private UserBean user;
private ArrayList<KindsOfCarBean> dlList1 = new ArrayList<KindsOfCarBean>(); // 农机大类
private ArrayList<KindsOfCarBean> xlList1 = new ArrayList<KindsOfCarBean>(); // 农机小类
private ArrayList<KindsOfCarBean> pmList1 = new ArrayList<KindsOfCarBean>(); // 农机品目
// private List<Map<String, KindsOfCarBean>> njxl = new ArrayList<Map<String,KindsOfCarBean>>();
// private List<Map<String, KindsOfCarBean>> njpm = new ArrayList<Map<String,KindsOfCarBean>>();
private GetCarTypeTaskNew getCarTypeTaskNew;
private AdminAreaBean xzqh;
private Optdb_interfce database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doinit();
}
protected void doinit() {
initWidgets();
initParam();
}
protected void initWidgets() {
setContentView(R.layout.query_btml);
ViewStub rlTitleBar = (ViewStub) findViewById(R.id.titleBarStub);
TitleBarUtil.createTitleBar(this, rlTitleBar, "补贴目录查询",
new OnClickListener() {
@Override
public void onClick(View v) {
QueryBtmlActivity.this.finish();
}
});
etName = (EditText) findViewById(R.id.etName);
btnProvince = (Button) findViewById(R.id.btnProvince);
btnQuery = (Button) findViewById(R.id.btnQuery);
dl_spinner = (Spinner) findViewById(R.id.spinner_dl);
xl_spinner = (Spinner) findViewById(R.id.spinner_xl);
pm_spinner = (Spinner) findViewById(R.id.spinner_pm);
btnProvince.setOnClickListener(this);
btnQuery.setOnClickListener(this);
}
protected void initParam() {
application = (MyApp) getApplication();
database = new Optdb_interfce(QueryBtmlActivity.this);
database.createNJTable(); //创建数据库表(表存在时不执行)
if(!TextUtils.isEmpty(application.getProvince())){
btnProvince.setText(application.getProvince());
// xzqh =new AdminAreaBean();
// xzqh.setLatitude(application.getLat());
// xzqh.setLongitude(application.getLon());
// xzqh.setCode(Long.parseLong(application.getProvinceCode()));
// xzqh.setProvinceCode(Integer.valueOf(application.getProvinceCode().trim().replace("0", "")).intValue());
// xzqh.setName(application.getProvince());
// xzqh.setProvinceName(application.getProvince());
}
dlList1 = database.getKindsOfCarBeanInfo(MyState.CAR_BIG_TYPE_MARK+""); //从数据库中查询数据如果有数据则不再从网络端获取
if(dlList1.size()!=0){
xlList1 = database.getSmallKindsOfCarBeanInfo(MyState.CAR_SMALL_TYPE_MARK+"", dlList1.get(0).getBigClassName());
if(xlList1.size()!=0){
pmList1 = database.getSmallKindsOfCarBeanPMInfo(MyState.CAR_TYPE_MARK+"",xlList1.get(0).getSmallClassName());
}
initUI();
initListeners();
}else{
if (new CheckState_interface(QueryBtmlActivity.this).checkConnection()) {
getCarTypeTaskNew = new GetCarTypeTaskNew();
getCarTypeTaskNew.execute();
} else {
UIUtil.showMsg(QueryBtmlActivity.this,
Constants.NETWORK_STATE_ERROR);
}
}
}
protected void initUI() {
dlStrList = getNames(dlList1);
initSpinner(dlStrList, dl_spinner);
}
public class GetCarTypeTaskNew extends AsyncTask<Void, Void, String> {
Dialog pd = null;
protected void onPreExecute() {
pd = ProgressDialogStyle.createLoadingDialog(QueryBtmlActivity.this, "正在加载数据,请稍候...");
pd.show();
}
protected String doInBackground(Void... params) {
String msg = "";
ClientContext context = application.getClientContext();
// context =null;
try {
if (null == context) {
context = ClientContext.getClientContext(
Constants.SERVER_URL, Constants.ANONYMOUS,
Constants.ANONYMOUS);
application.setClientContext(context);
}
// user = context.getUser();
// if (user != null) {
// xzqh = user.getAdminArea();
// }
// if(null!=application.getProvinceCode()){
// xzqh.setProvinceCode(Lng.parseInt(application.getProvinceCode()));
// }
// xzqh.setProvinceName(application.getProvince());
IKindsOfCarManager ddm = context
.getManager(IKindsOfCarManager.class);
maps1 = ddm.getChildren(0L);
getKindsOfCarBean(maps1, ddm);
} catch (Exception e) {
pd.dismiss();
if (e instanceof UndeclaredThrowableException) {
msg = e.getCause().getMessage();
e.printStackTrace();
} else {
msg = "失败";
e.printStackTrace();
}
}
return msg;
}
protected void onPostExecute(String result) {
if (!"".equals(result)) {
UIUtil.showMsg(QueryBtmlActivity.this, result);
} else {
initUI();
initListeners();
}
pd.dismiss();
}
}
public void getKindsOfCarBean(KindsOfCarBean[] mapsNJ_Dl,
IKindsOfCarManager ddm) {
// njxl = new ArrayList<Map<String, KindsOfCarBean>>();
// njpm = new ArrayList<Map<String, KindsOfCarBean>>();
dlList1 = new ArrayList<KindsOfCarBean>();
xlList1 = new ArrayList<KindsOfCarBean>();
pmList1 = new ArrayList<KindsOfCarBean>();
try {
for (int j = 0; j < mapsNJ_Dl.length; j++) {
dlList1.add(mapsNJ_Dl[j]);
KindsOfCarBean[] mapsNJ_XL = ddm.getChildren(mapsNJ_Dl[j].getCode());
for (int i = 0; i < mapsNJ_XL.length; i++) {
// Map<String, KindsOfCarBean> map = new HashMap<String, KindsOfCarBean>();
if (null != mapsNJ_XL[i]) {
// map.put(mapsNJ_Dl[j].getName(), mapsNJ_XL[i]);
// njxl.add(map);
xlList1.add(mapsNJ_XL[i]);
KindsOfCarBean[] mapsNJ_PM = ddm.getChildren(mapsNJ_XL[i].getCode());
for (int k = 0; k < mapsNJ_PM.length; k++) {
// Map<String, KindsOfCarBean> map2 = new HashMap<String, KindsOfCarBean>();
if (null != mapsNJ_PM[k]) {
// map2.put(mapsNJ_XL[i].getName(), mapsNJ_PM[k]);
// njpm.add(map2);
pmList1.add(mapsNJ_PM[k]);
}
}
}
}
}
database.InsertToDb(Optdb_interfce.TABLE_NJLEIBIE,dlList1);
database.InsertToDb(Optdb_interfce.TABLE_NJLEIBIE,xlList1);
database.InsertToDb(Optdb_interfce.TABLE_NJLEIBIE,pmList1);
if(dlList1.size()!=0){
xlList1 = database.getSmallKindsOfCarBeanInfo(MyState.CAR_SMALL_TYPE_MARK+"", dlList1.get(0).getBigClassName());
if(xlList1.size()!=0){
pmList1 = database.getSmallKindsOfCarBeanPMInfo(MyState.CAR_TYPE_MARK+"" ,xlList1.get(0).getSmallClassName());
}
}
// Log.e("111111111111qqqqq11111111111", dlList1.toString());
// Log.e("222222222222qqqqq2222222222", xlList1.toString());
// Log.e("333333333333qqqqq333333333333", pmList1.toString());
// database.close_SqlDb();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// public void showData(List<KindsOfCarBean> mapsNJ_Dl,List<KindsOfCarBean> mapsNJ_XL,List<KindsOfCarBean> mapsNJ_PM) {
// // TODO Auto-generated method stub
//
//// njxl = new ArrayList<Map<String, KindsOfCarBean>>();
//// njpm = new ArrayList<Map<String, KindsOfCarBean>>();
//
// for (int j = 0; j < mapsNJ_Dl.size(); j++) {
//
//// dlList1.add(mapsNJ_Dl.get(j));
//
// for (int i = 0; i < mapsNJ_XL.size(); i++) {
// Map<String, KindsOfCarBean> map = new HashMap<String, KindsOfCarBean>();
// if (null != mapsNJ_XL.get(i)) {
// map.put(mapsNJ_Dl.get(j).getName(), mapsNJ_XL.get(i));
// njxl.add(map);
//// xlList1.add(mapsNJ_XL.get(i));
// for (int k = 0; k < mapsNJ_PM.size(); k++) {
// Map<String, KindsOfCarBean> map2 = new HashMap<String, KindsOfCarBean>();
// if (null != mapsNJ_PM.get(k)) {
// map2.put(mapsNJ_XL.get(i).getName(), mapsNJ_PM.get(k));
// njpm.add(map2);
//// pmList1.add(mapsNJ_PM.get(k));
// }
//
// }
// }
//
// }
//
// }
// }
/**
* 初始化列表控件
*/
private void initSpinner(List<String> dataList, Spinner spinner) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, dataList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);
}
private List<String> getNames(List<KindsOfCarBean> dlList12) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<String>();
// list.add("请选择");
for (int i = 0; i < dlList12.size(); i++) {
list.add(dlList12.get(i).getName());
}
return list;
}
protected void initListeners() {
dl_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
// if(position!=0){
// position = position-1;
// }
xlList1 = new ArrayList<KindsOfCarBean>();
pmList1 = new ArrayList<KindsOfCarBean>();
xlList1 = database.getSmallKindsOfCarBeanInfo(MyState.CAR_SMALL_TYPE_MARK+"", dlList1.get(position).getBigClassName());
if(xlList1.size()!=0){
pmList1 = database.getSmallKindsOfCarBeanPMInfo(MyState.CAR_TYPE_MARK+"" ,xlList1.get(0).getSmallClassName());
}
// for (int i = 0; i < njxl.size(); i++) {
// KindsOfCarBean b = (KindsOfCarBean) njxl.get(i).get(
// dlList1.get(position).getName());
// if (null != b) {
// xlList1.add(b);
// }
//
// }
xlStrList = new ArrayList<String>();
// xlStrList.add("请选择");
pmStrList = new ArrayList<String>();
// pmStrList.add("请选择");
for (int j = 0; j < xlList1.size(); j++) {
if (xlList1 != null) {
xlStrList.add(xlList1.get(j).getName());
}
}
initSpinner(xlStrList, xl_spinner);
initSpinner(pmStrList, pm_spinner);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
xl_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
// if(position!=0){
// position = position-1;
pmList1 = new ArrayList<KindsOfCarBean>();
pmList1 = database.getSmallKindsOfCarBeanPMInfo(MyState.CAR_TYPE_MARK+"" ,xlList1.get(position).getSmallClassName());
// for (int i = 0; i < njpm.size(); i++) {
// KindsOfCarBean b = (KindsOfCarBean) njpm.get(i).get(
// xlList1.get(position).getName());
// if (null != b) {
// pmList1.add(b);
// }
//
// }
pmStrList = new ArrayList<String>();
// pmStrList.add("请选择");
for (int j = 0; j < pmList1.size(); j++) {
if (pmList1 != null) {
pmStrList.add(pmList1.get(j).getName());
}
}
initSpinner(pmStrList, pm_spinner);
// }
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
pm_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnProvince:
UIUtil.requestXzqh(this, xzqh);
break;
case R.id.btnQuery:
if (UIUtil.isFastDoubleClick()) {
return;
}
if (doValidate()) {
doQuery();
}
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.REQUEST_XZQH_CODE) {
if (resultCode == RESULT_OK) {
AdminAreaBean xzqh = (AdminAreaBean) data
.getSerializableExtra(Constants.PARAM_XZQH);
Log.v(Constants.TAG, xzqh.toString());
this.xzqh = xzqh;
btnProvince.setText(xzqh.getFullName());
}
}
}
private boolean doValidate() {
if( TextUtils.isEmpty(btnProvince.getText().toString())){
UIUtil.showMsg(QueryBtmlActivity.this, "请选择所在地");
return false;
}
return true;
}
public long getSpinnerDataNew(int index, List<KindsOfCarBean> list) {
// Log.e("index", index + "");
// index = index-1;
if(index<0){
return 0;
}
long temp = 0;
if (list != null && list.size() > 0) {
KindsOfCarBean bean = list.get(index);
if (bean != null) {
temp = bean.getCode();
}
}
return temp;
}
private void doQuery() {
CharSequence etNameText = etName.getText();
Intent intent = new Intent(this,
Btml_firstList.class);
intent.putExtra(Constants.PARAM_NAME, etNameText.toString());
intent.putExtra(Constants.PARAM_XZQH, xzqh);
intent.putExtra("flag", "njbt");
if (null != dlList1) {
long dlcode = getSpinnerDataNew(
dl_spinner.getSelectedItemPosition(), dlList1);
long xlcode = getSpinnerDataNew(
xl_spinner.getSelectedItemPosition(), xlList1);
long pmcode = getSpinnerDataNew(
pm_spinner.getSelectedItemPosition(), pmList1);
Log.e("@@@@@@@@@@@@@@@@@@:", dlcode + "--" + xlcode + "--"
+ pmcode + "--");
if (pmcode == 0) {
if (xlcode == 0) {
pmcode = dlcode;
} else {
pmcode = xlcode;
}
}
if(0!=pmcode){
intent.putExtra("carType", pmcode);
startActivity(intent);
}else{
UIUtil.showMsg(QueryBtmlActivity.this, "机具类别不能为空");
}
}
}
}