package com.ttj; import java.util.HashMap; import org.apache.http.Header; import com.linshao.http.AsyncHttpResponseHandler; import com.ttj.utils.HttpUtils; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.View; import android.widget.Toast; @SuppressLint("ShowToast") public abstract class NetActivity extends Activity implements android.view.View.OnClickListener { protected ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dialog = new ProgressDialog(this); dialog.setMessage("正在请求,请稍候..."); dialog.setCanceledOnTouchOutside(false); dialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { HttpUtils.canclePost(); Toast.makeText(NetActivity.this, "请求取消", 300).show(); } }); } /** * 网络请求 * * @param url * @param params * @param TAG */ protected void asynNet(final String url, final HashMap<String, String> params, final int TAG) { HttpUtils.post(url, params, new AsyncHttpResponseHandler() { @Override public void onStart() { super.onStart(); dialog.show(); } @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { dialog.dismiss(); success(new String(arg2), TAG); } @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { failure(TAG); dialog.dismiss(); new AlertDialog.Builder(NetActivity.this).setTitle("请求错误") .setMessage("服务器错误或连接失败,请重试").setCancelable(false) .setPositiveButton("重新请求", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { asynNet(url, params, TAG); } }).setNegativeButton("返回", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { NetActivity.this.finish(); } }).create().show(); } }); } public void failure(int tag) { } public abstract void success(String result, int tag); public abstract void onclick(View v); @Override public void onClick(View v) { onclick(v); } }