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, "机具类别不能为空"); } } } }