zoukankan      html  css  js  c++  java
  • [Android] 开源框架 Volley 自定义 Request

    今天在看Volley demo (https://github.com/smanikandan14/Volley-demo), 发现自定义GsonRequest那块代码不全, 在这里贴一个全的。

    public class GsonRequest<T> extends Request<T> {
        private Gson mGson;
        private Class mJavaClass;
        private Response.Listener<T> mListener;
    
        public GsonRequest(int method, String url, Class<T> cls, String requestBody,
                           Response.Listener<T> slistener,
                           Response.ErrorListener listener) {
            super(method, url, listener);
            mJavaClass = cls;
            mListener = slistener;
            mGson = new Gson();
        }
    
        @Override
        protected Response<T> parseNetworkResponse(NetworkResponse response) {
            try {
                String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
                T parsedGSON = (T) mGson.fromJson(jsonString, mJavaClass);
                return Response.success(parsedGSON, HttpHeaderParser.parseCacheHeaders(response));
            } catch (UnsupportedEncodingException e) {
                return Response.error(new ParseError(e));
            } catch (JsonSyntaxException je) {
                return Response.error(new ParseError(je));
            }
        }
    
        @Override
        protected void deliverResponse(T response) {
            mListener.onResponse(response);
        }

    简单说明一下几个fields的作用。

    mJavaClass是在通过Json反序列化成对象时使用;

    mListener里面onResponse是处理正确返回值的回调函数;

    具体的实现也可以参考Volley中JsonRequest类。

  • 相关阅读:
    Android getResources的作用和需要注意点
    Android 中的Affinity
    关于Android下各个布局方式里面LayoutParams的用法
    kaifa xin
    imageVIew
    实验三 区域四连通填充算法
    实验四 二维几何变换
    OpenGL开发库的详细介绍zz
    附加实验2 OpenGL变换综合练习
    实验3 OpenGL几何变换
  • 原文地址:https://www.cnblogs.com/lemonbar/p/3965903.html
Copyright © 2011-2022 走看看