JsonHttpResponseHandler 工具

请求处理基本类

public class BaseResponseHandler extends JsonHttpResponseHandler {
    Context context;
    LoadingDialog loadingDialog;
    PullToRefreshListView listview;
    PullToRefreshScrollView scrollView;
    private int remindType = 0;
    private boolean showLoading;
    public final static int NOTING = 0;
    public final static int TOAST = 1;
    public final static int DIALOG = 2;
    public final static int UPDATE = 3;

    public BaseResponseHandler(Context context, boolean showLoading,
            int remindType) {
        this.context = context;
        loadingDialog = new LoadingDialog(context);
        loadingDialog.setCancelable(false);
        this.showLoading = showLoading;
        this.remindType = remindType;
    }

    public BaseResponseHandler(Context context, boolean showLoading,
            int remindType, PullToRefreshListView listView) {
        this(context, showLoading, remindType);
        this.listview = listView;
    }

    public BaseResponseHandler(Context context, boolean showLoading,
            int remindType, PullToRefreshScrollView scrollView) {
        this(context, showLoading, remindType);
        this.scrollView = scrollView;
    }

    @Override
    public void onFailure(int statusCode, Header[] headers,
            String responseString, Throwable throwable) {
        // TODO Auto-generated method stub
        super.onFailure(statusCode, headers, responseString, throwable);
        throwable.printStackTrace();
        handFail();
    }

    @Override
    public void onFailure(int statusCode, Header[] headers,
            Throwable throwable, JSONArray errorResponse) {
        // TODO Auto-generated method stub
        super.onFailure(statusCode, headers, throwable, errorResponse);
        handFail();
    }

    @Override
    public void onFailure(int statusCode, Header[] headers,
            Throwable throwable, JSONObject errorResponse) {
        // TODO Auto-generated method stub
        super.onFailure(statusCode, headers, throwable, errorResponse);
        handFail();
    }

    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
        // TODO Auto-generated method stub
        Log.i("response", response.toString());
        try {
            if (response.getInt("resultCode")==2) {
                new MyAlertDialog(context, response.getString("resultMsg")).show();
            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    public void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        if (showLoading)
            loadingDialog.show();
    }

    @Override
    public void onFinish() {
        // TODO Auto-generated method stub
        super.onFinish();
        loadingDialog.dismiss();
    }

    private void handFail() {
        if (remindType == BaseResponseHandler.TOAST)
            ToastUtils.showToast(context, "网络错误");
        if (remindType == BaseResponseHandler.UPDATE){
            ToastUtils.showToast(context, "检查更新失败");
            Intent intent = new Intent(context,
                    LoginActivity.class);
            context.startActivity(intent);
            LauncherActivity.instance.finish();
        }
        if (listview != null)
            listview.onRefreshComplete();
        if (scrollView != null)
            scrollView.onRefreshComplete();
    }
}

加载框

public class LoadingDialog extends Dialog {

    Context context;

    public LoadingDialog(Context context) {
        super(context, R.style.loadingdialog);
        this.context = context;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_loading);
        this.setOnShowListener(new OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                findViewById(R.id.img_loading).startAnimation(
                        AnimationUtils.loadAnimation(context, R.anim.rotate));
            }
        });
    }

    public void setMessage(String message) {
        ((TextView) findViewById(R.id.txt_message)).setText(message);
    }
}

转载于:https://www.cnblogs.com/qwer520/p/5036933.html

你可能感兴趣的:(JsonHttpResponseHandler 工具)