package net.coding.program.common.ui; import android.content.Context; import android.graphics.BitmapFactory; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import net.coding.program.R; import net.coding.program.common.Global; import net.coding.program.common.base.MyJsonResponse; import net.coding.program.common.network.MyAsyncHttpClient; import net.coding.program.common.util.SingleToast; import org.apache.http.Header; import org.json.JSONObject; /** * Created by chenchao on 16/6/6. */ public class PopCaptchaDialog { public static void pop(Context context) { View layout = LayoutInflater.from(context).inflate(R.layout.dialog_captcha, null); EditText captchaEdit = (EditText) layout.findViewById(R.id.captchaEdit); ImageView captchaImage = (ImageView) layout.findViewById(R.id.imageValify); captchaImage.setOnClickListener(v -> { String url = Global.HOST_API + "/getCaptcha?type=0"; MyAsyncHttpClient.get(context, url, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { captchaImage.setImageBitmap(BitmapFactory.decodeByteArray(responseBody, 0, responseBody.length)); captchaEdit.setText(""); } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { SingleToast.showMiddleToast(context, "获取验证码失败"); } }); }); AlertDialog dialog = new AlertDialog.Builder(context) .setView(layout) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show(); Button b = dialog.getButton(AlertDialog.BUTTON_POSITIVE); b.setOnClickListener(view -> { String input = captchaEdit.getText().toString(); if (input.isEmpty()) { return; } String url = Global.HOST_API + "/request_valid?type=0"; RequestParams params = new RequestParams(); params.put("j_captcha", input); MyAsyncHttpClient.post(context, url, params, new MyJsonResponse(context) { @Override public void onMySuccess(JSONObject response) { dialog.dismiss(); } }); }); captchaImage.performClick(); } }