package com.jqyd.newprocess; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.jqyd.manager.R; import com.jqyd.model.EmpsModule; import com.jqyd.model.PositionInfo; import com.jqyd.shareInterface.UpdataToServer; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.Log; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class TakePosition extends Activity implements OnClickListener { private EditText name; private EditText start_date; private EditText end_date; private Button sure; private Button textDesc; private Button leftOpt; private Button righOpt; private TextView title; private Calendar c; private ArrayList<PositionInfo> locList = null; private ArrayList<PositionInfo> hisLocList = null; private EmpsModule emp = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.takeposition); name = (EditText) this.findViewById(R.id.name); start_date = (EditText) this.findViewById(R.id.start_date); end_date = (EditText) this.findViewById(R.id.end_date); sure = (Button) this.findViewById(R.id.sure); textDesc = (Button) this.findViewById(R.id.textDesc); title = (TextView) this.findViewById(R.id.title); title.setText("轨迹回放"); leftOpt = (Button) this.findViewById(R.id.leftOpt); leftOpt.setVisibility(Button.INVISIBLE); righOpt = (Button) this.findViewById(R.id.rightOpt); righOpt.setVisibility(Button.INVISIBLE); sure.setOnClickListener(this); textDesc.setOnClickListener(this); start_date.setOnClickListener(this); end_date.setOnClickListener(this); start_date.setOnFocusChangeListener(new TouchDateFocusListener()); end_date.setOnFocusChangeListener(new TouchDateFocusListener()); emp = (EmpsModule) this.getIntent().getSerializableExtra("emp"); name.setText(emp.getXm()); name.setClickable(false); c = Calendar.getInstance(); //时间默认当天 SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd"); String rq = formate.format(new Date()); start_date.setText(rq); end_date.setText(rq); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v == sure){ new NowSearchThread(1).start(); }else if(v == textDesc){ new NowSearchThread(2).start(); }else if(v == start_date){ getDate(1); }else if(v == end_date){ getDate(2); } } Handler myHander = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); switch(msg.what){ case 1: showDialog(1); break; case 2: removeDialog(1); showResult(); break; case 3: removeDialog(1); Toast.makeText(TakePosition.this, msg.getData().getString("msg"), Toast.LENGTH_SHORT).show(); break; case 4: removeDialog(1); showDesc(); break; } } }; //弹出日期框 public void getDate(final int num) { new DatePickerDialog(TakePosition.this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker arg0, int year, int month, int dat) { // TODO Auto-generated method stub String m = ""; String d = ""; if ((month + 1) < 10) { m = "0" + (month + 1); } else { m = (month + 1) + ""; } if (dat < 10) { d = "0" + dat; } else { d = dat + ""; } String time = year + "-" + m + "-" + d; if(num == 1){ start_date.setText(time); }else{ end_date.setText(time); } } }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show(); } /** * 获得焦点事件监听器 * @author Administrator * */ class TouchDateFocusListener implements OnFocusChangeListener{ @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub if(hasFocus && v == start_date){ getDate(1); }else if(hasFocus && v == end_date){ getDate(2); } } }; /** * 轨迹回放线程 * @author Administrator * */ class NowSearchThread extends Thread{ private int opt = 1; public NowSearchThread(int opt){ this.opt = opt; } @Override public void run() { // TODO Auto-generated method stub super.run(); Looper.prepare(); Message msg =new Message(); msg.what = 1; myHander.sendMessage(msg); Message msg2 =new Message(); String result = ""; JSONObject obj = new JSONObject(); try { obj.put("startDate", start_date.getText().toString()); obj.put("endDate", end_date.getText().toString()); obj.put("zguid", emp.getGuid()); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } Bundle bunlde = new Bundle(); String errMsg = ""; locList = new ArrayList<PositionInfo>(); hisLocList = new ArrayList<PositionInfo>(); result = new UpdataToServer(TakePosition.this).dataToServer("GJHF", obj); if (result != null && !result.equals("-1") && !result.equals("500")) { try { JSONObject return_obj = new JSONObject(result); String res = return_obj.getString("result"); if (res.equals("0")) { JSONArray arr = return_obj.getJSONArray("locinfo"); for(int i=0;i<arr.length();i++){ JSONObject pObject = arr.getJSONObject(i); PositionInfo gjhf = new PositionInfo(); gjhf.setAddTime(pObject.getString("dwtime")); gjhf.setContent(pObject.getString("content")); gjhf.setLon(pObject.getDouble("lon")); gjhf.setLat(pObject.getDouble("lat")); gjhf.setZdmc(pObject.getString("zdmc")); gjhf.setSjhm(pObject.getString("sjhm")); gjhf.setSucess(pObject.getInt("success")); gjhf.setProvince(pObject.getString("province")); gjhf.setCity(pObject.getString("city")); gjhf.setCountry(pObject.getString("country")); if(gjhf.getSucess() == 0){ locList.add(gjhf); } hisLocList.add(gjhf); } if(opt == 1){ msg2.what = 2; }else{ msg2.what = 4; } }else{ msg2.what = 3; errMsg = return_obj.getString("detail"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ msg2.what = 3; errMsg = "获取历史轨迹记录失败!"; } bunlde.putString("msg", errMsg); msg2.setData(bunlde); myHander.sendMessage(msg2); Looper.loop(); } } /** * 地图显示位置 */ public void showResult(){ Intent intent = new Intent(); intent.putExtra("locList", locList); intent.setClass(TakePosition.this, Gzgj_new.class); startActivity(intent); } /** * 文字详情显示 */ public void showDesc(){ Intent intent = new Intent(); intent.putExtra("locList", hisLocList); intent.setClass(TakePosition.this, LocDesc.class); startActivity(intent); } @Override protected Dialog onCreateDialog(int id) { // TODO Auto-generated method stub ProgressDialog dialog = new ProgressDialog(this); dialog.setIndeterminate(true); dialog.setCancelable(false); switch(id){ case 1: dialog.setMessage("正在查询,请稍候……"); break; } return dialog; } }