Newer
Older
dxcgt / app / src / main / java / com / smartdot / cgt / activity / FrmProblemHandleDetail.java
wangxitong on 6 Apr 2021 34 KB first commit
package com.smartdot.cgt.activity;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.location.Location;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

import com.esri.core.geometry.Point;
import com.esri.core.map.FeatureSet;
import com.esri.core.tasks.SpatialRelationship;
import com.smartdot.cgt.R;
import com.smartdot.cgt.model.ResponseResult;
import com.smartdot.cgt.request.ApiClent;
import com.smartdot.cgt.request.Request;
import com.smartdot.cgt.util.ActivityTools;
import com.smartdot.cgt.util.ApplicationMain;
import com.smartdot.cgt.util.BaseThread;
import com.smartdot.cgt.util.BitmapConvert;
import com.smartdot.cgt.util.GpsManager;
import com.smartdot.cgt.util.HandlerStatus;
import com.smartdot.cgt.util.MapUtil;
import com.smartdot.cgt.util.Msg;
import com.smartdot.cgt.util.PointD;
import com.smartdot.cgt.util.StringUtils;
import com.smartdot.cgt.view.ImagesLayout;
import com.smartdot.cgt.view.TitleBar;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FrmProblemHandleDetail extends BaseActivity
{

    private TitleBar titlebar;
    private BaseThread thread;
    private HashMap<String, BaseThread> threadList = new HashMap<String, BaseThread>(5);
    private final String THREAD_SUBMIT_FIELD = "THREAD_SUBMIT_FIELD";
    private final String THREAD_SUBMIT_PICTURE0 = "THREAD_SUBMIT_PICTURE0";
    private final String THREAD_SUBMIT_PICTURE1 = "THREAD_SUBMIT_PICTURE1";
    private final String THREAD_SUBMIT_PICTURE2 = "THREAD_SUBMIT_PICTURE2";
    private final String THREAD_SUBMIT_AUDIO = "THREAD_SUBMIT_Audio";
    private final int RESULT_POINT = 1101;
    private List<String> picpaths;
    JSONObject casejson;
    TextView txtcasenum,txtcasetype,txtcaselclass,txtcasesclass;
    TextView txtshequ,txtaddress,txtdetail,txtLimitTime,txtsuggest;
    EditText txtremarks,txtOpinion;
    private View btnGetPosition;
    private ImagesLayout imagesLayout;
    private LinearLayout mainLayout;
//    private LinearLayout handlepic,handlereason,handlesug;
    private ImagesLayout imagesLayout1;
    private LinearLayout mainLayout1;
    private Spinner spinCheckResult;
    public String nowstate,processId;
    private ImageButton closeBtn1,closeBtn2,closeBtn3;
    public List<Map<String,String>> nextstate;
    private Button submit_bt;
    private View btnGetImage;
    private static int SELECT_PICTURE = 0;
    private static int TAKE_PHOTO = 1;
    public int imgcount=0;
    private String longitude,latitude;
    Boolean istohandle;
    Long id;
    private String eventId;
    @Override
    protected void setLayout()
    {
        initActivity();
        setContentView(R.layout.problemsgdetail);

        titlebar = (TitleBar) this.findViewById(R.id.titlebar);
        titlebar.setTitleText("案卷详情");
        txtcasenum = (TextView) findViewById(R.id.casenum);
        txtcasetype = (TextView) findViewById(R.id.casetype);
        txtcaselclass = (TextView) findViewById(R.id.caselclass);
        txtcasesclass = (TextView) findViewById(R.id.casesclass);
        txtshequ = (TextView) findViewById(R.id.spinSq);
        txtaddress = (TextView) findViewById(R.id.txtAddress);
        txtdetail = (TextView) findViewById(R.id.txtEventDesc);
        txtremarks = (EditText) findViewById(R.id.txtReCheckDesc);
        txtLimitTime  = (TextView) findViewById(R.id.txtLimitTime);
        btnGetPosition = (View) findViewById(R.id.btnGetPosition);
        txtsuggest = (TextView) findViewById(R.id.txtsuggest);
//        layoutOpinion = (LinearLayout) findViewById(R.id.layoutOpinion);
//        handlepic = (LinearLayout) findViewById(R.id.handlepic);
//        handlereason = (LinearLayout) findViewById(R.id.handlereason);
//        handlesug = (LinearLayout) findViewById(R.id.handlesug);
        submit_bt = (Button)findViewById(R.id.submit_bt);
//        imageView = (ImageView) ApplicationMain.getInstance().inflateView(R.layout.imagelayout1);
        imagesLayout1 = (ImagesLayout) ApplicationMain.getInstance().inflateView(R.layout.imagelayout1);
        mainLayout1 = (LinearLayout) findViewById(R.id.layout_pic1);
        mainLayout1.addView(imagesLayout1);
        imagesLayout = (ImagesLayout) ApplicationMain.getInstance().inflateView(R.layout.imagelayout);
        closeBtn1 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn1);
        closeBtn2 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn2);
        closeBtn3 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn3);
        btnGetImage = (View) findViewById(R.id.btnGetImage);
        mainLayout = (LinearLayout) findViewById(R.id.layout_pic);
        mainLayout.addView(imagesLayout);
        spinCheckResult = (Spinner)findViewById(R.id.spinCheckResult);
        imagesLayout.setVisibility(View.GONE);
        Bundle bundle=getIntent().getExtras();
        istohandle = bundle.getBoolean("istohandle");
        txtOpinion = (EditText) findViewById(R.id.txtOpinion);
        submit_bt.setClickable(true);
    }
    @Override
    protected void doInit()
    {
        initview();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode,
                                    Intent intent) {
        if (resultCode == RESULT_OK) {
            if (requestCode == SELECT_PICTURE) {
                Bitmap yourSelectedImage = getImageFromReturnIntent(intent);
                if (yourSelectedImage != null) {
                    imagesLayout.addSelectedImage(yourSelectedImage);
                    if (imgcount < 3) {
                        imgcount++;
                        if (imgcount == 1) closeBtn1.setVisibility(View.VISIBLE);
                        else if (imgcount == 2) closeBtn2.setVisibility(View.VISIBLE);
                        else if (imgcount == 3) closeBtn3.setVisibility(View.VISIBLE);
                    }

                }
            } else if (requestCode == TAKE_PHOTO) {
                Bitmap bitmap = getImageFromCameraIntent(intent);
                if (bitmap != null) {
                    imagesLayout.addSelectedImage(bitmap);
                    if (imgcount < 3) {
                        imgcount++;
                        if (imgcount == 1) closeBtn1.setVisibility(View.VISIBLE);
                        else if (imgcount == 2) closeBtn2.setVisibility(View.VISIBLE);
                        else if (imgcount == 3) closeBtn3.setVisibility(View.VISIBLE);
                    }
                }
            }
        }
    }

    @Override
    protected void addEventListener()
    {
        btnGetPosition.setOnClickListener(onClickListener);
        submit_bt.setOnClickListener(onClickListener);
        btnGetImage.setOnClickListener(onClickListener);
        closeBtn1.setOnClickListener(onClickListener);
        closeBtn2.setOnClickListener(onClickListener);
        closeBtn3.setOnClickListener(onClickListener);

        imagesLayout1.setOnPreviewImage(imagesLayout1.new OnPreviewImage()
        {
            @Override
            public void previewImage(int viewIndex)
            {

                Intent intent = new Intent(FrmProblemHandleDetail.this, FrmViewImage.class);
                intent.putExtra(FrmViewImage.BITMAPKEY, imagesLayout1.getSelectedImagesPath());
                intent.putExtra(FrmViewImage.FIRSTSHOWINDEX, viewIndex);
                startActivity(intent);
            }
        });
        imagesLayout.setOnCountChange(imagesLayout.new OnCountChange()
        {
            @Override
            public void getNowCount(int nowCount)
            {
                imagesLayout.setVisibility(nowCount == 0 ? View.GONE : View.VISIBLE);
                btnGetImage.setEnabled(nowCount < 2);
                imagesLayout.requestFocus();
            }
        });
        imagesLayout.setOnPreviewImage(imagesLayout.new OnPreviewImage()
        {
            @Override
            public void previewImage(int viewIndex)
            {

                Intent intent = new Intent(FrmProblemHandleDetail.this, FrmViewImage.class);
                intent.putExtra(FrmViewImage.BITMAPKEY, imagesLayout


                        .getSelectedImagesPath());
                intent.putExtra(FrmViewImage.FIRSTSHOWINDEX, viewIndex);
                startActivity(intent);
            }
        });
//        spinCheckResult.setOnItemSelectedListener(onItemSelectedListener);
    }

//    private AdapterView.OnItemSelectedListener onItemSelectedListener = new AdapterView.OnItemSelectedListener()
//    {
//        @Override
//        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
//        {
//            if(nextstate.get(arg2).get("nextState").equals("301")){
//                mainLayout.setVisibility(View.VISIBLE);
//                handlepic.setVisibility(View.VISIBLE);
//                handlesug.setVisibility(View.VISIBLE);
//                handlereason.setVisibility(View.GONE);
//            }
//            else{
//                mainLayout.setVisibility(View.GONE);
//                handlepic.setVisibility(View.GONE);
//                handlesug.setVisibility(View.GONE);
//                handlereason.setVisibility(View.VISIBLE);
//            }
//        }
//
//        @Override
//        public void onNothingSelected(AdapterView<?> arg0)
//        {
//        }
//    };
    private OnClickListener onClickListener = new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            if (arg0 == btnGetPosition) {
                //地图和百度地图切换
                int getLocationId = ActivityTools.GETLOCATION_NONE;
                Intent intent = new Intent();
                intent.setClass(FrmProblemHandleDetail.this,FrmMap.class);
                Bundle bundle = new Bundle();
                bundle.putString("lng",longitude);
                bundle.putString("lat",latitude);
                intent.putExtras(bundle);
                startActivity(intent);
            }else if(arg0 == submit_bt){
                submit_bt.setClickable(false);
                boolean bsub = true;
                String selected = nextstate.get(spinCheckResult.getSelectedItemPosition()).get("nextState");
                if(!selected.equals("301")){
                    if(StringUtils.isNullOrEmpty(txtremarks.getText().toString().trim())){
                        Msg.showInfo(FrmProblemHandleDetail.this, "请填写申请理由!");
                        bsub = false;
                    }
                    if(txtremarks.getText().toString().length()>50){
                        Msg.showInfo(FrmProblemHandleDetail.this, "申请理由不能超过50字!");
                    }
                }
                if (selected.equals("301")&&imagesLayout.getSelectedImageCount() <1)
                {
                    Msg.showInfo(FrmProblemHandleDetail.this, "请上传图片!");
                    bsub = false;
                }
                if(bsub){
                    picpaths = new ArrayList<String>();
                    submitPicture();
                    submitcheck();
                }else {
                    submit_bt.setClickable(true);
                }
            }else if (arg0 == btnGetImage)
            {// 点击获取图片
                ActivityTools.getInstance().takePicture(SELECT_PICTURE,
                        TAKE_PHOTO, FrmProblemHandleDetail.this);
            }
            else if(arg0 == closeBtn1) {
                imagesLayout.removeSelectedImage(0);
                if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
                else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
                else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
                imgcount--;
            }
            else if(arg0 == closeBtn2) {
                imagesLayout.removeSelectedImage(1);
                if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
                else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
                else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
                imgcount--;
            }
            else if(arg0 == closeBtn3) {
                imagesLayout.removeSelectedImage(2);
                if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
                else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
                else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
                imgcount--;
            }
        }
    };
    public File getFile(Bitmap bm) {
        Long random = System.currentTimeMillis();
        String randomstr = random.toString();
        String path = Environment.getExternalStorageDirectory() + "/Ask";
        File dirFile = new File(path);
        if(!dirFile.exists()){
            dirFile.mkdir();
        }
        File myCaptureFile = new File(path +"/" + randomstr +".jpg");
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
            bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
            bos.flush();
            bos.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return myCaptureFile;
    }

    private void submitPicture(){
        final Bitmap[] bitmapList = imagesLayout.getSelectedImages();
        BaseThread thread = new BaseThread(baseHandler) {
            @Override
            public void runThread() {
                final Message msg = this.obtainMessage();
                if (msg != null) {
                    msg.what = HandlerStatus.SUBMIT_PICTURE0;
                    try {
                        for (int i = 0, count = imagesLayout.getSelectedImageCount(); i < count; i++){
                            final int nowIndex = i;
                            File file = getFile(bitmapList[nowIndex]);
                            ApiClent.fileupload(file, new ApiClent.ClientCallback() {
                                @Override
                                public void onSuccess(Object data)
                                {
                                    try {
                                        JSONObject jsonObject = new JSONObject(data.toString());
                                        picpaths.add(jsonObject.getString("data"));
                                        msg.arg1 = HandlerStatus.HANDLE_OK;
                                    } catch (JSONException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                        Log.i("fileupload", e.getMessage());
                                        msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                    }
                                }
                                @Override
                                public void onFailure(String message) {
                                    System.out.println("fileupload.message------------------ " + message);
                                    msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                }
                                @Override
                                public void onError(Exception e) {
                                    System.out.println("fileupload.e.getMessage()------------------ " + e.getMessage());
                                    msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                }
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        msg.arg1 = HandlerStatus.HANDLE_ERROR;
                    }
                    this.sendMessage(msg);
                }
            }
        };
        showProgress("图片上传中。。。", "案卷录入");
        thread.start();
        final String key = "THREAD_SUBMIT_PICTURE0";
        threadList.put(key, thread);
    }

    private void submitcheck(){
        thread = new BaseThread(baseHandler)
        {
            @Override
            public void runThread()
            {
                final Message msg = thread.obtainMessage();
                if (msg != null)
                {
                    msg.what = HandlerStatus.REQUEST_SUBMITCHECK;
                    try
                    {
                        while(picpaths.size()<imagesLayout.getSelectedImageCount()){
                            Thread.currentThread().sleep(500);
                        }
                        String picstr ="" ;
                        for(int i=0; i<picpaths.size(); i++){
                            if(i>0) picstr+=",";
                            picstr+=picpaths.get(i);
                        }
                        String changeState = nextstate.get(spinCheckResult.getSelectedItemPosition()).get("nextState");
                        String approvalResult = nextstate.get(spinCheckResult.getSelectedItemPosition()).get("approvalResult");
                        String remarkers;
                        remarkers = txtremarks.getText().toString().trim();
                        ApiClent.completeCaseTaskHandle(processId,id.toString(),nowstate, changeState,
                                                remarkers,picstr,approvalResult,new ApiClent.ClientCallback() {
                                    @Override
                                    public void onSuccess(Object data)
                                    {
                                        try {
                                            JSONObject jsonObject = new JSONObject(data.toString());
                                            System.out.println(jsonObject);
                                            msg.arg1 = HandlerStatus.HANDLE_OK;
                                        } catch (JSONException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                            Log.i("inputNewCase", e.getMessage());
                                            msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                        }
                                    }
                                    @Override
                                    public void onFailure(String message) {
                                        System.out.println("inputNewCase.message------------------ " + message);
                                        msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                    }
                                    @Override
                                    public void onError(Exception e) {
                                        System.out.println("inputNewCase.e.getMessage()------------------ " + e.getMessage());
                                        msg.arg1 = HandlerStatus.HANDLE_FAIL;
                                    }
                                });
                    }
                    catch (Exception e)
                    {
                        msg.arg1 = HandlerStatus.HANDLE_ERROR;
                    }
                    this.sendMessage(msg);
                }
            }
        };
        showProgress("提交中。。。", "案卷处理");
        thread.start();
        threadList.put(THREAD_SUBMIT_FIELD, thread);
    }

    private boolean checkIsNeedCloseProgress()
    {
        boolean canCloseProgress = true;
        for (BaseThread thread : threadList.values())
        {
            if (thread != null && thread.getIsThreadGoing())
            {
                canCloseProgress = false;
            }
        }
        if (canCloseProgress)
        {
            try
            {
                closeProgress();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
        return canCloseProgress;
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void handleMessage(Message msg)
    {
        if(msg.what == HandlerStatus.REQUEST_PIC0){
            if (msg.arg1 == HandlerStatus.HANDLE_OK) {
                Bitmap bitmap = (Bitmap) msg.obj;
                imagesLayout1.addSelectedImage(bitmap);
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "案卷图片加载失败!");
            }
            checkIsNeedCloseProgress();
        }else if(msg.what == HandlerStatus.REQUEST_PIC1){
            if (msg.arg1 == HandlerStatus.HANDLE_OK) {
                Bitmap bitmap = (Bitmap) msg.obj;
                imagesLayout1.addSelectedImage(bitmap);
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "案卷图片加载失败!");
            }
            checkIsNeedCloseProgress();
        }else if(msg.what == HandlerStatus.REQUEST_PIC2){
            if (msg.arg1 == HandlerStatus.HANDLE_OK) {
                Bitmap bitmap = (Bitmap) msg.obj;
                imagesLayout1.addSelectedImage(bitmap);
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "案卷图片加载失败!");
            }
            checkIsNeedCloseProgress();
        }else if (msg.what == HandlerStatus.SUBMIT_PICTURE0)
        {
            threadList.get(THREAD_SUBMIT_PICTURE0).interrupt();
            if (msg.arg1 == HandlerStatus.HANDLE_OK)
            {
//                Msg.showInfo(FrmProblemHandleDetail.this, "图片上传成功!");
                finishActivity(checkIsNeedCloseProgress());
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "上传图片失败!");
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_ERROR)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "上传图片时出现错误!");
            }
            checkIsNeedCloseProgress();
        }
        else if(msg.what ==HandlerStatus.REQUEST_DETAIL){
            if (msg.arg1 == HandlerStatus.HANDLE_OK) {
                casejson = (JSONObject) msg.obj;
                try
                {
                    txtcasenum.setText(casejson.getString("caseid"));
                    txtcasetype.setText(casejson.getString("eorcName"));
                    txtcaselclass.setText(casejson.getString("casetypeName"));
                    txtcasesclass.setText(casejson.getString("casetypeDetailName"));
                    txtshequ.setText(casejson.getString("communityName"));
                    txtaddress .setText(casejson.getString("fieldintro"));
                    txtdetail.setText(casejson.getString("description"));
                    txtLimitTime.setText(casejson.getString("nodeLimittime"));
                    txtsuggest.setText(casejson.getString("processRemarks"));
                    nowstate = casejson.getString("caseState");
                    processId = casejson.getString("processId");
                    longitude = casejson.getString("lng");
                    latitude = casejson.getString("lat");
                    String fileIdVerify = casejson.getString("fileIdVerify").replace(" ", "").replace("\\","/");
                    List<String> list = Arrays.asList(fileIdVerify.split(","));
                    if(!fileIdVerify.equals("")){
                        initpic(list);
                    }else{
                        mainLayout1.setVisibility(View.GONE);
                    }
                    initspin();
                }catch (JSONException e){
                    e.printStackTrace();
                }
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "获取案卷详情失败!");
            }
            else
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "获取案卷详情时出现错误!");
            }
            checkIsNeedCloseProgress();
        }else if (msg.what == HandlerStatus.REQUEST_SPINSTATE)
        {

            if (msg.arg1 == HandlerStatus.HANDLE_OK)
            {
                try {
                    List<String> data_list = (List<String>) msg.obj;
                    ArrayAdapter<String> arr_adapter = new ArrayAdapter<String>(FrmProblemHandleDetail.this,
                            android.R.layout.simple_spinner_item, data_list);
                    arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    spinCheckResult.setAdapter(arr_adapter);
                    arr_adapter.notifyDataSetChanged();
                    spinCheckResult.setSelection(0,true);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "获取处理结果信息失败!");
            }
            else
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "获取处理结果时出现错误!");
            }
            checkIsNeedCloseProgress();
        }else if (msg.what == HandlerStatus.REQUEST_SUBMITCHECK)
        {
            threadList.get(THREAD_SUBMIT_FIELD).interrupt();
            if (msg.arg1 == HandlerStatus.HANDLE_OK)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "上报成功!");
                finishActivity(checkIsNeedCloseProgress());
            }
            else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "案卷处理失败!");
            }
            else
            {
                Msg.showInfo(FrmProblemHandleDetail.this, "案卷处理时出现错误!");
            }
            checkIsNeedCloseProgress();
        }
    }

    private void initspin(){
        thread = new BaseThread(baseHandler)
        {
            @Override
            public void runThread()
            {
                Message msg = thread.obtainMessage();
                if (msg != null)
                {
                    msg.what = HandlerStatus.REQUEST_SPINSTATE;
                    ResponseResult< List<Map<String,String>>> typelistResult = null;
                    List<String> data_list = new ArrayList<String>();
                    try
                    {
                        typelistResult = Request.getRequest().nextNodes(nowstate);
                        nextstate = typelistResult.getResultObj();
                        if (typelistResult.isSuccess())
                        {
                            for (int i=0;i<nextstate.size();i++)
                                data_list.add(nextstate.get(i).get("nextOperation"));
                            msg.obj = data_list;
                            msg.arg1 = HandlerStatus.HANDLE_OK;
                        }
                        else if (typelistResult.isHadError())
                        {
                            msg.arg1 = HandlerStatus.HANDLE_ERROR;
                        }
                        else
                        {
                            msg.arg1 = HandlerStatus.HANDLE_FAIL;
                        }
                    }
                    catch (Exception e)
                    {
                        msg.arg1 = HandlerStatus.HANDLE_ERROR;
                        msg.obj = e.getMessage();
                        e.printStackTrace();
                    }
                    thread.sendMessage(msg);
                }
            }
        };
        thread.start();
    }
    private void initpic(final List<String> list){
        int length = list.size();
        if(length>3) length = 3;
        for(int i=0; i<length; i++) {
            final int handlerStatusId = HandlerStatus.REQUEST_PIC0 + i;
            final int nowIndex = i;
            thread = new BaseThread(baseHandler)
            {
                @Override
                public void runThread()
                {
                    final Message msg = thread.obtainMessage();
                    msg.what = handlerStatusId;
                    if (msg != null)
                    {
                        try {
                            String urlStr = ApplicationMain.getInstance().getCgtConfig().getRequestUrl()+"/static/"+list.get(nowIndex);
                            URL url = new URL(urlStr);
                            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                            conn.setConnectTimeout(5000);
                            conn.setRequestProperty("token",ApplicationMain.getInstance().getCgtConfig().gettokenStr());
                            conn.setRequestMethod("GET");
                            if (conn.getResponseCode() == 200) {
                                InputStream inputStream = conn.getInputStream();
                                Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                                if(bitmap!=null){
                                    msg.obj = bitmap;
                                    msg.arg1 = HandlerStatus.HANDLE_OK;
                                }
                            }
                        }catch (MalformedURLException e){
                            e.printStackTrace();
                            msg.arg1 = HandlerStatus.HANDLE_FAIL;
                        }catch (IOException e){
                            e.printStackTrace();
                            msg.arg1 = HandlerStatus.HANDLE_FAIL;
                        }
                        this.sendMessage(msg);
                    }
                }
            };
            thread.start();
        }
    }
    private void initview(){
        thread = new BaseThread(baseHandler)
        {
            @Override
            public void runThread()
            {
                final Message msg = thread.obtainMessage();
                if (msg != null)
                {
                    msg.what = HandlerStatus.REQUEST_DETAIL;
                    Bundle bundle=getIntent().getExtras();
                    id = bundle.getLong("id");
                    ApiClent.caseDetail(id, new ApiClent.ClientCallback() {
                        @Override
                        public void onSuccess(Object data)
                        {
                            try {
                                JSONObject jsonObject = new JSONObject(data.toString());
                                JSONObject json = jsonObject.getJSONArray("data").getJSONObject(0);
                                msg.obj = json;
                                msg.arg1 = HandlerStatus.HANDLE_OK;
                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                                Log.i("list_error", e.getMessage());
                                msg.arg1 = HandlerStatus.HANDLE_FAIL;
                            }
                        }
                        @Override
                        public void onFailure(String message) {
                            msg.arg1 = HandlerStatus.HANDLE_FAIL;
                        }
                        @Override
                        public void onError(Exception e) {
                            msg.arg1 = HandlerStatus.HANDLE_ERROR;
                        }
                    });
                    this.sendMessage(msg);
                }
            }
        };
        thread.start();
    }

    private OnClickListener btnOnClick = new OnClickListener()
    {
        @Override
        public void onClick(View v){
            switch (v.getId()) {
                default:
                    break;
            }
        }
    };

    /**
     //	 * @param imageReturnedIntent
     * @return
     */
    private Bitmap getImageFromCameraIntent(Intent imageReturnedIntent)
    {
        Bitmap bitmap = BitmapConvert.resizeBitmap(ApplicationMain
                .getInstance().getImageTempPath());
        if (bitmap == null)
        {
            Msg.showInfo(this, "未能获取所拍摄的图片!");
        }
        return bitmap;
    }

    /**
     * @param imageReturnedIntent
     * @return
     */
    private Bitmap getImageFromReturnIntent(Intent imageReturnedIntent)
    {
        Bitmap yourSelectedImage = null;
        try
        {
            String filePath = "";
            Uri selectedImage = imageReturnedIntent.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            if (cursor != null)
            {
                cursor.moveToFirst();
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                filePath = cursor.getString(columnIndex);
                cursor.close();
            }
            else
            {
                filePath = selectedImage.getPath();
            }
            yourSelectedImage = BitmapConvert.resizeBitmap(filePath);

        }
        catch (Exception e)
        {
            Msg.showInfo(this, "未找到图片!");
        }
        return yourSelectedImage;
    }


    @Override
    protected void onCancelProgress(DialogInterface arg0)
    {
        for (BaseThread thread : threadList.values())
        {
            if (thread != null)
            {
                thread.interrupt();
            }
        }
        threadList.clear();
    }

    private void finishActivity(boolean canClose)
    {
        this.finishActivity(canClose, false);
    }

    private void finishActivity(boolean canClose, boolean needCacheAudio)
    {
        if (canClose)
        {
            if (imagesLayout.getSelectedImageCount() > 0)
            {
                try
                {
                    Request.getRequest().saveImageCache(imagesLayout.getSelectedImages(), eventId, null);
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
            setResult(0x007);
            FrmProblemHandleDetail.this.finish();
        }
    }
}