package cn.bingoogolapple.volley; import android.app.Activity; import android.app.ProgressDialog; import android.text.TextUtils; import android.util.Log; import com.android.volley.Response; import com.android.volley.VolleyError; /** * 作者:王浩 邮件:bingoogolapple@gmail.com * 创建时间:15/7/2 10:14 * 描述: */ public abstract class VolleyRespDelegate<T> implements Response.Listener<String> { private static final String TAG = VolleyRespDelegate.class.getSimpleName(); private static boolean sIsDebug = false; private static String sLoadingMessage = "数据加载中,请稍候"; protected ProgressDialog mLoadingDialog; private Activity mActivity; protected VolleyRespDelegate(Activity activity) { mActivity = activity; if (mActivity != null) { mLoadingDialog = new ProgressDialog(activity); mLoadingDialog.setCancelable(false); mLoadingDialog.setMessage(sLoadingMessage); mLoadingDialog.show(); } } public static void setIsDebug(boolean isDebug) { sIsDebug = isDebug; } public static void setLoadingMessage(String loadingMessage) { sLoadingMessage = loadingMessage; } public Activity getActivity() { return mActivity; } @Override public void onResponse(String response) { if (sIsDebug && !TextUtils.isEmpty(response)) { Log.d(TAG, "response\n-------------------- START --------------------\n" + response + "\n-------------------- END --------------------"); } onFinish(); handleResponse(response); } protected void handleResponse(String response) { onSucess((T) response); } public Response.ErrorListener getErrorListener() { return new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { onFinish(); onNetError(error); } }; } public void onFinish() { if (mLoadingDialog != null && mLoadingDialog.isShowing()) { mLoadingDialog.dismiss(); } } protected abstract void onSucess(T content); protected abstract void onNetError(VolleyError error); }