package com.jqyd.newprocess; import java.util.ArrayList; import java.util.HashMap; import com.jqyd.adapter.MyAdapter; import com.jqyd.app.MyApp; import com.jqyd.manager.R; import com.jqyd.manager.Xszs; import com.jqyd.model.CustomerModule; import com.jqyd.model.GroupsModule; import com.jqyd.model.ProTypeModule; import com.jqyd.shareInterface.Optdb_interfce; import com.jqyd.son.Info; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.EditText; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; /** * 分组列表:员工、客户、商品、竞品 * @author Administrator * */ public class GroupList extends Activity { private ListView listView; private EditText find; private MyAdapter adapter; private String groupNums = "";//存放一个分组编号 private ArrayList<String> groupNumList = null;//分组编号 private ArrayList<String> groupNameList = null;//分组名称 private boolean flag_exit = false; private String dataType = ""; private String moduleName = "";//功能模块名称 //private boolean groupData = true;//判断当前分组下是否数据,如果没有则返回上一分组,否则返回分组初始化界面 private Optdb_interfce db; private MyApp myApp; private ArrayList<HashMap<String,String>> custList = null; private ArrayList<HashMap<String,String>> goodList = null; private ArrayList<HashMap<String,String>> compList = null; private ArrayList<Bundle> listBundle = null; private boolean isCust = false; private int actNum = 0;//判断当条数据 private boolean longPress = true;//是否长按了 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.grouplist); listView = (ListView) this.findViewById(R.id.listView); find = (EditText) this.findViewById(R.id.find); myApp = (MyApp) this.getApplication(); //数据类型1、客户2、商品3、竞品4、员工 dataType = myApp.getDataType(); moduleName = myApp.getModuleName(); System.out.println("分组类型-------------------"+dataType); loadData(); mhSearch(); //将当前Activity放入存储器中 ArrayList<Activity> listActivity = myApp.getListActivity(); listActivity.add(GroupList.this); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); System.out.println("**************************"); } /** * 加载数据 */ public void loadData(){ db = new Optdb_interfce(GroupList.this); listBundle = new ArrayList<Bundle>(); System.out.println("加载数据***********************************************************************"); this.setTitle("请选择客户"); groupNumList = new ArrayList<String>(); groupNameList = new ArrayList<String>(); custList = new ArrayList<HashMap<String,String>>(); Bundle bundle = null; groupNums = myApp.getGroupNums(); if(groupNums.equals("")){ ArrayList<Object> li = db.searchFGroups("0",1);//取出一级分组编号 for(int i=0;i<li.size();i++){ HashMap<String,String> map = new HashMap<String,String>(); GroupsModule group = (GroupsModule) li.get(i); map.put("textView1", group.getGname()); custList.add(map); groupNumList.add(group.getGid()+""); groupNameList.add(group.getGname()); } }else{ ArrayList<Object> li = db.searchFGroups(groupNums,1);//逐级取出分组编号及分组名称 //判断分组下是否有客户存在,如果存在,则直接在当前界面显示出来,否则不显示 ArrayList<Object> custs = new ArrayList<Object>(); custs = db.searchCustsByMoreGps(groupNums,1); groupNums = ""; //分组循环 for(int i=0;i<li.size();i++){ HashMap<String,String> map = new HashMap<String,String>(); GroupsModule group = (GroupsModule) li.get(i); map.put("textView1", group.getGname()); custList.add(map); groupNumList.add(group.getGid()+""); groupNameList.add(group.getGname()); } //客户循环 for(int j=0;j<custs.size();j++){ HashMap<String,String> map = new HashMap<String,String>(); bundle = new Bundle(); CustomerModule cust = (CustomerModule) custs.get(j); map.put("textView1", cust.getCname()); custList.add(map); bundle.putString("cid", cust.getCid()); bundle.putString("cname", cust.getCname()); bundle.putString("linkman", cust.getLinkman()); bundle.putString("link_sim", cust.getLink_sim()); bundle.putString("address", cust.getAddress()); bundle.putString("lon", cust.getLon()); bundle.putString("lat", cust.getLat()); bundle.putString("clon", cust.getClon()); bundle.putString("clat", cust.getClat()); listBundle.add(bundle); flag_exit = true; } } //判断当前列表界面是否包含分组或分组下的数据 /* if(custList != null && custList.size()<1){ groupData = false; }*/ db.close_SqlDb(); //显示数据 showList(); } /** * 当前列表显示数据 */ public void showList(){ ArrayList<HashMap<String,String>> list = null; list = custList; adapter=new MyAdapter(list, this,-1); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub System.out.println("-------------------------------单击事件-----------------------------"); if(flag_exit){ Bundle bundle = listBundle.get(position); Intent intent =new Intent(); //intent.putExtras(bundle); //保存客户信息 myApp.setCustBundle(bundle); if(moduleName.equals("ddsb")){ myApp.setGroupNums(""); startActivity(intent.setClass(GroupList.this, CustEdit.class)); }else if(moduleName.equals("xssb") || moduleName.equals("kcsb")){ //清楚上次记忆的分组编号 myApp.setGroupNums(""); myApp.setDataType("2"); startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class)); }else if(moduleName.equals("jpsb")){ //清楚上次记忆的分组编号 myApp.setGroupNums(""); myApp.setDataType("3"); startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class)); } }else{ System.out.println(flag_exit); System.out.println("***"+dataType); String groupNum = groupNumList.get(position); myApp.setGroupNums(groupNum);//客户分组 startActivity(new Intent().setClass(GroupList.this, GroupList.class)); //finish(); } finish(); } }); /** * 绑定长按时间监听器 * 目标对象:分组 * 条件:分组下存在客户(目前只做数据采集功能的处理)、客户、数据采集模块中的客户 */ listView.setOnItemLongClickListener(new OnItemLongClickListener(){ @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) { // TODO Auto-generated method stub System.out.println("-------------------------------长按事件-----------------------------"); isCust = false;//初始化 if(!flag_exit && (myApp.getModuleName().equals("xssb") || myApp.getModuleName().equals("kcsb") || myApp.getModuleName().equals("jpsb")) && myApp.getDataType().equals("1")){// groupNums = groupNumList.get(position); String fzmc = groupNameList.get(position); //查询分组下是否有客户,有客户则下一步 db = new Optdb_interfce(GroupList.this); //judageExitCust(groupNums,db);//执行查找逻辑 System.out.println("是否有客户----------------------------"+isCust); db.close_SqlDb(); //if(isCust){ if(moduleName.equals("xssb") || moduleName.equals("kcsb")){ //清楚上次记忆的分组编号 myApp.setGroupNums(""); myApp.setDataType("2"); myApp.setFzid(groupNums); myApp.setFzmc(fzmc); startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class)); }else if(moduleName.equals("jpsb")){ //清楚上次记忆的分组编号 myApp.setGroupNums(""); myApp.setDataType("3"); myApp.setFzid(groupNums); myApp.setFzmc(fzmc); startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class)); } finish(); /*}else{ new Toast(GroupList.this).makeText(GroupList.this, "抱歉,该分组下无客户数据!", Toast.LENGTH_LONG).show(); //以下执行是为了阻止单击事件的执行 startActivity(new Intent().setClass(GroupList.this, GroupList.class)); finish(); }*/ } return false; } }); } /** * 根据分组id,查询分组及其子分组下是否有客户信息 * @param groupNum * @return */ public void judageExitCust(String groupNums,Optdb_interfce db){ System.out.println("分组编号*******************"+groupNums); boolean isExit = false; ArrayList<Object> custs = new ArrayList<Object>(); ArrayList<Object> li = db.searchFGroups(groupNums,1);//逐级取出分组编号及分组名称 custs = db.searchCustsByMoreGps(groupNums,1);//获得分组下的客户信息 System.out.println("客户数据*******************"+custs.size()); System.out.println("分组数据*******************"+li.size()); //判断分组下是否有客户 if(custs != null && custs.size()>0){ isCust = true; }else{ groupNums = ""; //判断分组下有无子分组 if(li.size()>0){ //分组循环 for(int i=0;i<li.size();i++){ GroupsModule group = (GroupsModule) li.get(i); //groupNumList.add(group.getGid()+""); groupNums+=group.getGid()+","; } groupNums = groupNums.substring(0, groupNums.length()-1); //循环查询 judageExitCust(groupNums,db); } } } /** * 模糊搜索 */ private void mhSearch(){ find.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub listBundle = new ArrayList<Bundle>(); Bundle bundle = null; HashMap<String,String> map = null; Optdb_interfce db = new Optdb_interfce(GroupList.this); custList = new ArrayList<HashMap<String,String>>(); ArrayList<CustomerModule> custs = null; if(find.getText().toString().equals("")){ loadData();//初始化 }else{ custs = db.searchCustomers(1,1,find.getText().toString()); for(int j=0;j<custs.size();j++){ map = new HashMap<String,String>(); bundle = new Bundle(); CustomerModule cust = custs.get(j); map.put("textView1", cust.getShort_name()); custList.add(map); bundle.putString("cid", cust.getCid()); bundle.putString("cname", cust.getCname()); bundle.putString("linkman", cust.getLinkman()); bundle.putString("link_sim", cust.getLink_sim()); bundle.putString("address", cust.getAddress()); bundle.putString("lon", cust.getLon()); bundle.putString("lat", cust.getLat()); bundle.putString("clon", cust.getClon()); bundle.putString("clat", cust.getClat()); listBundle.add(bundle); flag_exit = true; } showList(); } db.close_SqlDb(); } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK){ System.out.println("--------------------------------------"); if(!myApp.getGroupNums().equals("")){ myApp.setGroupNums(""); startActivity(new Intent().setClass(GroupList.this, GroupList.class)); } finish(); return true; } return super.onKeyDown(keyCode, event); } }