package com.txsc.supplier; import java.util.HashMap; import org.apache.http.Header; import com.linshao.http.AsyncHttpResponseHandler; import com.txsc.supplier.utils.HttpUtils; import android.annotation.SuppressLint; 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.support.v4.app.Fragment; import android.view.View; import android.widget.Toast; @SuppressLint("ShowToast") public abstract class NetFragment extends Fragment implements android.view.View.OnClickListener { protected ProgressDialog dialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dialog = new ProgressDialog(getActivity()); dialog.setCancelable(true); dialog.setMessage("正在请求,请稍候..."); dialog.setCanceledOnTouchOutside(false); dialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { HttpUtils.canclePost(); Toast.makeText(getActivity(), "请求取消", 300).show(); } }); } 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) { dialog.dismiss(); new AlertDialog.Builder(getActivity()).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) { MyApplication.getInstance().finishAllActivity(); } }).create().show(); } }); } public abstract void success(String result, int tag); public abstract void onclick(View v); @Override public void onClick(View v) { onclick(v); } }