如何扩展Volley响应(修复' com.android.volley.Response'中没有默认构造函数)

时间:2014-10-21 22:43:16

标签: android generics android-volley

我正在Android Developer网站上的Volley培训中尝试实施示例:来自此处的GSON请求https://developer.android.com/training/volley/request-custom.html

当我尝试扩展Response时,收到一条消息"There is no default constructor available in 'com.android.volley.Response'

public class AlertCountResponse extends Response implements Serializable{

    @SerializedName("alertCount")
    private int mAlertCount;
}

如何扩展com.android.volley.Response?

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以通过创建一个构造函数来扩展Request,该构造函数接受(方法,url,侦听器和错误侦听器),并在构造函数中调用Request的公共构造函数。请求的公共构造函数将调用私有默认构造函数。

    public MyRequestClass (int method, String url, Listener<String> listener, ErrorListener errorListener) {
        super(method, url, errorListener);
        mListener = listener;
    }

答案 1 :(得分:1)

由于它具有私有构造函数,因此无法扩展它。

但是,如果您确实需要自定义Response类,则可以编译自己的自定义排球库。这也很容易!

$ git clone https://android.googlesource.com/platform/frameworks/volley

现在通过您的fav文件浏览器访问./volley/src/com/android/volley/Response.java并根据您的需要进行编辑

然后回到控制台,完成编译库:

$ cd volley
$ /path_to_sdk/tools/android update project -p . --target android-21
$ ant jar

完成后,将volley.jar复制到YourProject/app/libs/,您就可以了!